项目场景:
更改docker的默认镜像目录
docker版本 1.13.1
更改前目录:/var/lib/docker
更改后目录:/docker
问题描述
docker使用过程中,出现内存告警,默认镜像目录没有多余空间可以添加镜像信息。
解决方案:
更改docker默认目录到一个新的目录
1、停止docker容器与docker服务
docker stop <id>
sudo systemctl stop docker
sudo systemctl status docker
2、迁移现有数据
sudo mkdir -p /docker
sudo rsync -avzP /var/lib/docker/ /docker
将 /var/lib/docker 目录下的所有文件和文件夹递归地复制到 /docker 目录下,-a 以归档模式进行复制,-v 显示详细的复制过程,-z 在传输过程中进行压缩,-P 显示复制进度。
3、配置新的目录
这里出现了两种情况,一种情况是我本机的docker版本=20.10,服务器环境版本是docker=1.13.1,差的很多
情况一
:
docker>=20.0.0
更改/etc/docker中的文件 daemon.json,添加“data-root”配置
此文件对于个体开发者来说一般是用来设定镜像源时会使用
{
"data-root":"/docker"
}
更改前建议备份文件,如果有内容的话
保存后加载docker的daemon设置
sudo systemctl daemon-reload
启动docker服务
sudo systemctl start docker
sudo systemctl status docker
检查存储信息
docker info | grep "Docker Root Dir"
// 输出为docker
情况二
docker==1.13.1
情况二有两种方法
1、更改配置信息
2、升级docker-ce
先说第一种方法
在按照情况一的步骤停止docker服务后
编辑 Docker 服务的启动参数文件,通常是 /etc/systemd/system/docker.service.d/override.conf,如果该文件不存在,则创建它。在文件中添加以下内容:
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd-current \
--add-runtime docker-runc=/usr/libexec/docker/docker-runc-current \
--default-runtime=runc \
--exec-opt native.cgroupdriver=systemd \
--userland-proxy-path=/usr/libexec/docker/docker-proxy-current \
--init-path=/usr/libexec/docker/docker-init-current \
--seccomp-profile=/etc/docker/seccomp.json \
--selinux-enabled \
--log-driver=journald \
--signature-verification=false \
--storage-driver overlay2 \
-g /docker
ExecStart的具体命令可以根据 ps -ef | grep docker 查看docker主进程的启动命令查看
保存并关闭文件,按照情况一的方法加载配置并启动dockef服务与检查配置信息
第二种方法
升级docker版本
我们公司内网环境存在yum源,有docker的20.10.0版本存在
我选择的方式是。卸载原有docker,然后重装最新版本docker
卸载步骤
老规矩,停止docker服务
然后卸载当前版本
sudo yum remove -y docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
检查一下是否清理完成
rpm -qa | grep docker
重新安装docker
内网环境
yum install -y docker-ce docker-ce-cli containerd.io
外网环境
//更新包索引
sudo yum check-update
// 安装
yum install -y docker-ce docker-ce-cli containerd.io
启动docker服务
sudo systemctl start docker
sudo systemctl status docker
之后按照步骤一更改目录
我比较幸运,整个卸载安装过程没有出现过中断性问题。看各位造化了。
日常想念女朋友。