今天领导给我一个活,把服务器里的Docker Container迁移走
前几天学习的Docker终于用上了
首先查看所有的docker容器
docker ps -a
然后查看所有docker的挂载信息
网上查命令
root@a:/home/a# docker inspect $(docker ps -aq) | grep Mounts -A 20
"Mounts": [
{
"Type": "bind",
"Source": "/home/a/deploy/msic-html5/config",
"Destination": "/opt/msic-html5/bundle/programs/server/assets/app/config",
"Mode": "rw",
"RW": true,
"Propagation": "rprivate"
}
],
"Config": {
"Hostname": "a",
"Domainname": "",
"User": "",
"AttachStdin": false,
"AttachStdout": false,
"AttachStderr": false,
"Tty": false,
"OpenStdin": false,
"StdinOnce": false,
"Env": [
--
"Mounts": [
{
"Type": "bind",
"Source": "/etc/localtime",
"Destination": "/etc/localtime",
"Mode": "rw",
"RW": true,
"Propagation": "rprivate"
},
{
"Type": "bind",
"Source": "/home/a/deploy/msic-premier",
"Destination": "/opt/msic-premier",
"Mode": "rw",
"RW": true,
"Propagation": "rprivate"
}
],
"Config": {
"Hostname": "a",
"Domainname": "",
--
Source里的是宿主机的路径
Destination里的是容器的挂载路径
接着把所有的宿主机挂载文件打包
/data里的挂载文件将近7个G,使用分卷命令打包
压缩:
tar cvzf - /data/ | split -d -b 1024m - data
解压缩:
cat data* > data.tar.gz
tar xzvf data.tar.gz
最后整大活,利用commit命令把container转成image,然后再把image打包
root@a:/home/a/lx_bak# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1c372c2d60cc a/msic-html5:1.0.1 "docker-entrypoint.sh" 8 days ago Exited (137) 44 hours ago msic-html5
ec38c4e1fcf4 a/msic-premier:1.0.1 "./logic" 10 months ago Up 13 days msic-premier
c443a437b941 a-media-base:bionic "/usr/bin/supervisor…" 18 months ago Up 13 days a-media
ca228fce0f75 a/msic-web:1.0.1 "catalina.sh run doc…" 23 months ago Up 13 days msic-web
3358a3546617 a/msic-akka:1.0.1 "/usr/share/bbb-apps…" 23 months ago Up 13 days msic-akka
db6828c8ccc5 nginx:stable-alpine "/usr/sbin/nginx -g …" 23 months ago Up 43 hours nginx
f55425ec3b5e mysql:5.7.24 "docker-entrypoint.s…" 23 months ago Up 13 days mysql
054a430ebe22 redis:4.0.9-init "docker-entrypoint.s…" 23 months ago Up 13 days redis
0c226f6cfee4 mongo:3.4.19 "docker-entrypoint.s…" 23 months ago Up 13 days mongo
root@a:/home/a/lx_bak# docker commit -a="lx" -m="msic-html5_bak" 1c372c2d60cc msic-html5bak:1.0.1
root@a:/home/a/lx_bak# docker save -o msic-html5bak.tar msic-html5bak:1.0.1
最后sz导出...
齐活,送走,反正看不看的懂是他们的事了。
半天过去了....