如何遷移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