更改Docker镜像默认存储目录与升级docker版本

项目场景:

更改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

之后按照步骤一更改目录

我比较幸运,整个卸载安装过程没有出现过中断性问题。看各位造化了。

日常想念女朋友。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值