书接上回,公司搭了web的gitlab-ci。现在要搭android环境的ci,我选了reactnativecommunity/react-native-android作基本镜像,有10G之大,然后pull不下来,排查之后发现是docker的安装盘满了。所以就有了这次的docker data root迁移体验。
写在前面
如果你是centos7,请先确认SElinuxe状况。
查看SELinux状态: 1、/usr/sbin/sestatus -v##如果SELinux status参数为enabled即为开启状态 SELinux status: enabled 2、getenforce ##也可以用这个命令检查 关闭SELinux:
1、临时关闭(不用重启机器): setenforce 0##设置SELinux 成为permissive模式 ##setenforce 1 设置SELinux 成为enforcing模式
2、修改配置文件需要重启机器: 修改/etc/selinux/config 文件 将SELINUX=enforcing改为SELINUX=disabled 如果你不确定可以关闭戓配置SElinux白名单,请尝试其它文章。因为迁移后会导致原容器访问卷失败
确认你的docker版本
docker -v
如果你的docker是默认安装的1.13,那么请选择方案2
- docker info 查看你的docker root dir,
|
|
- 查看你docker root dir磁盘占用情况
df -lh /var/lib
这个时候通常会是快满的状况,你可以选择两种解决方案。
一:
systemctl stop docker停止dockermkdir -p /home/lib/docker创建一个新目录,这个目录你可以自定义mv /var/lib/docker /home/lib/docker移动旧目录过去vim /etc/docker/daemon.json添加 { “data-root”: “/home/lib/docker” }到原jsonsystemctl daemon-reload加载配置项systemctl restart docker重启docker
如果报错unable to configure the Docker daemon with file /etc/docker/daemon.js说明你docker版本太低。 要么换方案2,要么升级docker吧。
二:
跟上述步骤一样,只是把第4步换成。 4. ln -s /home/lib/docker /var/lib/docker
重启docker
如果是centos7且发现旧容器访问volume报permission denied。就临时关闭SElinux
|
|