容器备份迁移案例
运行一段时间后的容器,其中包含了新的数据,如果想把这些内容数据一并迁移到新的主机上,可以按照以下步骤进行:
-
提交容器生成新的镜像
[root@localhost ~]# docker ps //查看正在运行的容器web CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 9a17f7c9f00a nginx "nginx -g 'daemon of…" 19 hours ago Up 19 hours 80/tcp web [root@localhost ~]# docker commit -p web webdata:v1 //-p暂停web容器并提交为新镜像webdata:v1 sha256:b25ea02c5f1f4efe4c35d6503a277d968d5dfdf0cfd69092b3e99202dd687723 [root@localhost ~]# docker images //查看提交的新镜像webdata REPOSITORY TAG IMAGE ID CREATED SIZE webdata v1 b25ea02c5f1f 3 seconds ago 127MB
-
将镜像保存成一个tar压缩包
[root@localhost ~]# docker save webdata:v1 > webdata.tar [root@localhost ~]# ll -h webdata.tar -rw-r--r-- 1 root root 125M 5月 13 23:47 webdata.tar
-
在另一台主机上加载镜像的tar压缩包
[root@localhost ~]# cd test/ [root@localhost test]# ll 总用量 127572 -rw-r--r-- 1 root root 130631168 5月 13 23:49 webdata.tar [root@localhost test]# docker load -i webdata.tar d9d778e6751c: Loading layer [==================================================>] 10.24kB/10.24kB Loaded image: webdata:v1 [root@localhost test]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE webdata v1 b25ea02c5f1f 12 minutes ago 127MB
-
加载镜像运行容器
[root@localhost test]# docker run -itd --name web webdata:v1 51d9ed10961b9620ea6456f5bd75dbd43168b73c7bd184dcccdd25fcf956d9e5 [root@localhost test]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 51d9ed10961b webdata:v1 "nginx -g 'daemon of…" 35 seconds ago Up 33 seconds 80/tcp web [root@localhost test]# docker exec -it web ls /mnt/ test.txt