如何迁移docker容器和镜像的默认路径

参考链接:

https://sanenthusiast.com/change-default-image-container-location-docker/

 

主要步骤:

1、创建docker配置文件。

2、拷贝原来的目录/var/lib/docker

3、建立docker-proxy和docker-runc的链接文件

 ln -s /usr/libexec/docker/docker-proxy-current /usr/bin/docker-proxy
 ln -s /usr/libexec/docker/docker-runc-current /usr/bin/docker-runc

4、重启服务。

systemctl  stop docker-->systemctl daemon-reload-->systemctl start docker

 

以下写了个脚本

#!/bin/bash
Data_Path=/data/docker_projects  #定义迁移的目录
Store_Type=$(docker info 2>/dev/null |grep -i storage|awk  '{print $3}')   #获取docker的存储设备

[ $(id -u) != 0 ]&&echo "You must use root permission!"&&exit 1   #以root用户操作

[ ! -d /data/docker_projects ]&&mkdir /data/docker_projects
[ ! -d /etc/systemd/system/docker.service.d ]&&mkdir /etc/systemd/system/docker.service.d
[ ! -f /etc/systemd/system/docker.service.d/docker.conf ]&&touch /etc/systemd/system/docker.service.d/docker.conf
cat > /etc/systemd/system/docker.service.d/docker.conf << EOF      #写入配置文件内容
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd --graph="$Data_Path" --storage-driver=$Store_Type #此处会用到目标路径和存储设备,\

 --graph项在不同的环境中设置有点不同,有的不用加双引号,有的不用加根斜线,具体可以在docker启动后,执行“docker info”\

查看一下metadata信息。
EOF

systemctl stop docker          #先要停掉docker,再启动daemon-reload,docker。
echo "About $(du -sh /var/lib/docker) files will be copy to new direction,Please wait a moment!"
echo "-------------------------------------------------------------------------"
#cp -pr /var/lib/docker/* $Data_PathEOF
#rm -rf /var/lib/docker/*

systemctl daemon-reload
systemctl start docker
#docker ps -a|awk 'NR>1{print $1}'|xargs docker start

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值