参考链接:
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