docker 安装及存储路径配置
docker的安装
安装docker yum install docker
启动服务 systemctl start docker.service
设置开机自启 systemctl enable docker.service
查看docker版本 docker version
使用centos7系统的,建议把selinux服务关闭,它会影响docker的启动及一些容器的使用.
SELinux一共有3种状态,分别是Enforcing,Permissive和Disabled状态。第一种是默认状态,表示强制启用,第二种是宽容的意思,即大部分规则都放行。第三种是禁用,即不设置任何规则。可以通过命令 getenforce
查看selinux服务的状态,默认一般都是 Enforcing。
修改selinux状态,编辑配置文件 vi /etc/selinux/config
将 SELINUX=enforcing
改为SELINUX=disabled
,该操作后需要重启机器。
docker存储路径配置
docker每次创建一个镜像、容器都会占据大量的内存空间,所以建议在安装的时候就把docker放在大空间的路径下,默认的docker是安装在/var/lib/docker
下.
如果docker已经启动,请先关闭它 systemctl stop docker.service
. 我打算把它迁移到 /home/docker
路径下,所以先创建文件夹 mkdir /home/docker
然后编辑docker存储路径配置 vi /lib/systemd/system/docker.service
,找到ExecStart项 ,把它改成ExecStart=/usr/bin/dockerd --graph /home/docker
保存文件后需要执行命令重新加载配置 systemctl daemon-reload
.
然后将原路径文件拷贝到新的路径下 cp -r /var/lib/docker/* /home/docker/
docker中不存在容器的话,可以把原路径下的文件删除
如果docker已经存在容器,需要迁移容器的挂载点
首先输入命令
df -hl
查看挂载点,docker容器会创建名称为overlay和shm的挂载点.这时候可以执行命令cat /proc/mounts|grep docker
查看挂载点哪些是属于docker的.然后执行
umount 挂载点全路径
去掉该容器的挂载,并修改挂载点的路径,改成迁移后的docker路径,重新执行挂载命令mount 新挂载点路径
再次查看挂载
df -hl
这时候应该看到的都是新的路径,也可以删除原路径下的文件了,如果依旧删除失败,重启机器后可删除,然后尝试运行镜像。如果运行镜像失败提示:Error response from daemon: shim error: docker-runc not installed on system,执行命令创建软连接
cd /usr/libexec/docker/
和ln -s docker-runc-current docker-runc
如果运行镜像失败提示:exec: “docker-proxy”: executable file not found in $PATH,执行命令创建软连接
ln -s /usr/libexec/docker/docker-proxy-current /usr/bin/docker-proxy
再次运行镜像,应该就能启动了,个人觉得迁移存储路径,有很大可能会出现上面的运行镜像失败的错误,如果是新装的docker迁移了存储路径,也可以先执行上面创建软连接的命令避免以后发生错误.
常用的docker命令
docker run 参数配置 | 作用 |
---|---|
-v /etc/localtime:/etc/localtime:ro | 把主机时间同步到容器中,不同步会相差8小时 |
--privileged=true | centos默认关闭SElinux,需要开启特权模式,以root的形式进入容器,否则是普通用户 |
--restart=always | 容器开启自动启动 |
--net=host | 容器和宿主机的IP同网段 |
-v 主机路径:容器路径 | 用户把主机的文件挂载到容器中 |
/usr/sbin/init | 在容器中开启系统命令,能够使用systemctl的命令 |
-d: | 后台运行容器,并返回容器ID; |
-i: | 以交互模式运行容器,通常与 -t 同时使用; |
-p: | 端口映射,格式为:主机(宿主)端口:容器端口 |
-t: | 为容器重新分配一个伪输入终端,通常与 -i 同时使用; |
--name=nginx-lb | 为容器指定一个名称; |
最后更新: 2020年05月26日 11:57