赞
踩
1. 下载地址
官网下载地址:https://download.docker.com/linux/static/stable/x86_64/
官网文档地址:https://docs.docker.com/engine/install/binaries/
2. 解压并注册为service
下载安装
# 下载
tarball="docker-18.09.7.tgz"
wget -c https://download.docker.com/linux/static/stable/x86_64/${tarball}
# 解压
tar -zxvf ${tarball}
# 复制到/usr/bin
cp docker/* /usr/bin
# 上步中必须拷贝解压出的文件到/usr/bin目录下,而不是在/usr/bin下建立文件夹,然后再整个拷过来。我这里就犯了个错误,在usr/bin下建立个docker目录,运行时报异常。应该是这个目录没有PATH中定义
添加到service: vim /etc/systemd/system/docker.service
这里是基础配置,详细配置可使用指定配置文件来启动服务
[Unit] Description=Docker Application Container Engine Documentation=https://docs.docker.com After=network-online.target firewalld.service Wants=network-online.target [Service] Type=notify # the default is not to use systemd for cgroups because the delegate issues still # exists and systemd currently does not support the cgroup feature set required # for containers run by docker ExecStart=/usr/bin/dockerd ExecReload=/bin/kill -s HUP $MAINPID # Having non-zero Limit*s causes performance problems due to accounting overhead # in the kernel. We recommend using cgroups to do container-local accounting. LimitNOFILE=infinity LimitNPROC=infinity LimitCORE=infinity # Uncomment TasksMax if your systemd version supports it. # Only systemd 226 and above support this version. #TasksMax=infinity TimeoutStartSec=0 # set delegate yes so that systemd does not reset the cgroups of docker containers Delegate=yes # kill only the docker process, not all processes in the cgroup KillMode=process # restart the docker process if it exits prematurely Restart=on-failure StartLimitBurst=3 StartLimitInterval=60s [Install] WantedBy=multi-user.target
启动服务
#添加文件权限并启动docker
chmod +x /etc/systemd/system/docker.service
#重载unit配置文件
systemctl daemon-reload
#启动docker
systemctl start docker
#设置开机自启
systemctl enable docker.service
检查状态
# 状态 systemctl status docker # 版本 docker -v `` 添加docker的镜像源 vi /etc/docker/daemon.json 内容如下: {"registry-mirrors":["https://docker.mirrors.ustc.edu.cn"]} 镜像命令: docker images //查看本地已经存在的镜像 docker search imageName //搜索网络上镜像 docker pull imageName:versionNum //从镜像源拉取镜像 docker rmi imageID //删除镜(根据ID) docker rmi `docker images -q` //删除所有镜像 注意 ``是esc键下的字符 容器命令: docker ps //查看正在运行的容器 docker ps -a //查看所有容器 docker ps -l //查看最后一次运行的容器 dokcer ps -f status=existed //查看停止的容 docker run -it --name=容器名称 镜像名称:标签 /bin/bash //交互式方式创建容器并进入容器 要退出当前 容器: exit docker run -di --name=容器名称 镜像名称:标签 //守护式方式创建容器 以守护式方式创建容器后进入容器:docker exec -it 容器名称或ID /bin/bash 注意:直接以交互式创建容器并进入容器,exit后,容器结束 运行;以守护式创建容器,再进入容器,exit后,容器还是运行状态。 容器启动、停止 docker start 容器名称或id docker stop 容器名称或id 文件拷贝 docker cp 需要拷贝的文件或目录 容器名称:容器目录 //拷贝宿主机文件到容器 docker cp 容器名称:容器目录 需要拷贝的文件或目录 //拷贝容器内文件到宿主机 创建容器时报异常: docker: Error response from daemon: OCI runtime create failed: container_linux.go:349: starting container process caused "process_linux.go:449: container init caused \"write /proc/self/attr/keycreate: permission denied\"": unknown.` ![在这里插入图片描述](https://img-blog.csdnimg.cn/24ea6608743141a9bfb78b0a3738e196.png) 需要执行setenforce 0 (临时使用,重启后消失) 将/etc/selinux下的config文件中的SELINUX属性改为disabled vi /etc/selinux/config ![在这里插入图片描述](https://img-blog.csdnimg.cn/6d05d260d5a2441d89e1afabcf38e73c.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASVQt5rCR5belMjExMTA=,size_17,color_FFFFFF,t_70,g_se,x_16) 文件拷贝 //从宿主机拷贝到容器 docker cp 需要拷贝的文件或目录 容器名称:容器目录 //从容器拷贝到宿主机 docker cp 容器名称:需要拷贝的文件或目录 宿主机目录或文件 目录挂载 创建容器 添加-v参数,后边为 宿主机目录:容器目录 docker run -di -v /usr/local/myhtml:/usr/local/myhtml --name=myCentos2 centos:latest 如果共享的是多级目录,可能出现权限不足的情况。这是因为系统的安全模块selinux把权限禁掉了。需要添加参数 --privileged=true来解决挂载的目录没有权限的问题 查看容器IP地址 docker inspect 容器名称(或ID) 也可直接执行下面的命令直接输出IP docker inspect --format='{undefined{.NetworkSettings.IPAddress}}' 容器名称(或ID) 删除容器 docker rm 容器名称(或ID) 运行中的窗口必须stop后才能删除,同理镜像也是删除不掉的。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。