方法1: 容器的导出导入: export/import
方法2: 镜像的导出与导入: save/load
而将当前运行的容器转为新镜像:
更新镜像
更新镜像之前,我们需要使用镜像来创建一个容器。
runoob@runoob:~$ docker run -t -i ubuntu:15.10 /bin/bash
root@e218edb10161:/#
在运行的容器内使用 apt-get update 命令进行更新。
在完成操作之后,输入 exit 命令来退出这个容器。
此时 ID 为 e218edb10161 的容器,是按我们的需求更改的容器。我们可以通过命令 docker commit 来提交容器副本。
runoob@runoob:~$ docker commit -m="has update" -a="runoob" e218edb10161 runoob/ubuntu:v2
sha256:70bf1840fd7c0d2d8ef0a42a817eb29f854c1af8f7c59fc03ac7bdee9545aff8
各个参数说明:
-
-m: 提交的描述信息
-
-a: 指定镜像作者
-
e218edb10161:容器 ID
-
runoob/ubuntu:v2: 指定要创建的目标镜像名
我们可以使用 docker images 命令来查看我们的新镜像 runoob/ubuntu:v2:
===================
实战:
1/在服务器A中配置好seafile compose, 然后逐个容器commit一份为镜像:
[root@docker seafile]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
mariadb 10.1 ad20783a626b 2 weeks ago 353MB
seafileltd/seafile-mc latest c21cf1a7f656 2 weeks ago 891MB
memcached 1.5.6 855fdf342eda 2 years ago 58.6MB
[root@docker seafile]# docker commit -a="rocklee" ^C
[root@docker seafile]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4f4611dff95b seafileltd/seafile-mc:latest "/sbin/my_init -- /s…" 7 days ago Up About an hour 0.0.0.0:80->80/tcp, 0.0.0.0:8000->8000/tcp, 0.0.0.0:8080->8080/tcp seafile
016cc85bde71 memcached:1.5.6 "memcached -m 256" 7 days ago Up About an hour 11211/tcp seafile-memcached
c6fd2e241026 mariadb:10.1 "docker-entrypoint.s…" 7 days ago Up About an hour 3306/tcp seafile-mysql
[root@docker seafile]# docker images^C
[root@docker seafile]# docker commit -a="rocklee" 4f4611dff95b rocklee/seafile:latest
sha256:026414ed5de460c09d1f840ed3f4e8661ee5bcb4a3c7256326df19c828a2c350
[root@docker seafile]# docker commit -a="rocklee" 016cc85bde71 rocklee/seafile-memcached:latest
sha256:4e1ac139fee754739fe939562eff7b5b856cadc3b65046b885c302ce1a4fa0d2
[root@docker seafile]# docker commit -a="rocklee" c6fd2e241026 rocklee/seafile-mysql:latest
sha256:5a5bb80bfdd6217ccc025fe4bb2d42a94dc1233a8f4b80d60588706c8690f93b
[root@docker seafile]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
rocklee/seafile-mysql latest 5a5bb80bfdd6 3 seconds ago 353MB
rocklee/seafile-memcached latest 4e1ac139fee7 21 seconds ago 58.6MB
rocklee/seafile latest 026414ed5de4 57 seconds ago 898MB
mariadb 10.1 ad20783a626b 2 weeks ago 353MB
seafileltd/seafile-mc latest c21cf1a7f656 2 weeks ago 891MB
memcached 1.5.6 855fdf342eda 2 years ago 58.6MB
2/将新镜像都打包一份
[root@docker seafile]# docker save -o backup.tar rocklee/seafile-mysql rocklee/seafile-memcached rocklee/seafile
把 yml和tar复制到另一服务器, 然后:
[root@docker2 seafile]# docker load -i backup.tar
3358360aedad: Loading layer [==================================================>] 58.44MB/58.44MB
067893074642: Loading layer [==================================================>] 338.4kB/338.4kB
b486405c84ac: Loading layer [==================================================>] 3.108MB/3.108MB
6ad4891bf395: Loading layer [==================================================>] 3.584kB/3.584kB
96b27293caca: Loading layer [==================================================>] 1.536kB/1.536kB
Loaded image: rocklee/seafile-memcached:latest
f49017d4d5ce: Loading layer [==================================================>] 85.96MB/85.96MB
8f2b771487e9: Loading layer [==================================================>] 15.87kB/15.87kB
ccd4d61916aa: Loading layer [==================================================>] 10.24kB/10.24kB
c01d74f99de4: Loading layer [==================================================>] 5.632kB/5.632kB
268a067217b5: Loading layer [==================================================>] 3.072kB/3.072kB
831fff32e4f2: Loading layer [==================================================>] 65.02kB/65.02kB
c89f4fbc01f8: Loading layer [==================================================>] 103.4MB/103.4MB
0cdd64955da5: Loading layer [==================================================>] 51.54MB/51.54MB
de487e3eb232: Loading layer [==================================================>] 146.7MB/146.7MB
45138bb51c02: Loading layer [==================================================>] 5.398MB/5.398MB
6a8b8596550a: Loading layer [==================================================>] 57.66MB/57.66MB
b1787dc874ca: Loading layer [==================================================>] 260.8MB/260.8MB
7c182a4a7e39: Loading layer [==================================================>] 8.801MB/8.801MB
bd7b2a01b6b5: Loading layer [==================================================>] 29.39MB/29.39MB
de5bd3e6922f: Loading layer [==================================================>] 19.89MB/19.89MB
fdf16df56e88: Loading layer [==================================================>] 39.94kB/39.94kB
2940250cda7c: Loading layer [==================================================>] 7.168kB/7.168kB
1ba9f5e0943c: Loading layer [==================================================>] 4.608kB/4.608kB
d503934bb7be: Loading layer [==================================================>] 5.12kB/5.12kB
cc19cd3c5a97: Loading layer [==================================================>] 9.728kB/9.728kB
e6ea4e4c826e: Loading layer [==================================================>] 2.56kB/2.56kB
33593d52b173: Loading layer [==================================================>] 152.9MB/152.9MB
74f101c87223: Loading layer [==================================================>] 5.12kB/5.12kB
1adcdc0650db: Loading layer [==================================================>] 8.746MB/8.746MB
Loaded image: rocklee/seafile:latest
b7f7d2967507: Loading layer [==================================================>] 65.58MB/65.58MB
a6ebef4a95c3: Loading layer [==================================================>] 991.2kB/991.2kB
838a37a24627: Loading layer [==================================================>] 15.87kB/15.87kB
28ba7458d04b: Loading layer [==================================================>] 3.072kB/3.072kB
fadf5ecbe4d4: Loading layer [==================================================>] 402.9kB/402.9kB
8179bbf82947: Loading layer [==================================================>] 11.12MB/11.12MB
78452794b5bd: Loading layer [==================================================>] 3.886MB/3.886MB
e0b9a9a4c57f: Loading layer [==================================================>] 1.536kB/1.536kB
2df470f82b36: Loading layer [==================================================>] 4.695MB/4.695MB
d0abe7e5ebab: Loading layer [==================================================>] 8.704kB/8.704kB
79b956f84d51: Loading layer [==================================================>] 5.12kB/5.12kB
6bd92a51eab7: Loading layer [==================================================>] 272.4MB/272.4MB
a194bb2208ea: Loading layer [==================================================>] 15.36kB/15.36kB
01886de02354: Loading layer [==================================================>] 1.536kB/1.536kB
8eaf24b3caff: Loading layer [==================================================>] 3.584kB/3.584kB
[root@docker2 seafile]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
rocklee/seafile-mysql latest 5a5bb80bfdd6 16 minutes ago 353MB
rocklee/seafile-memcached latest 4e1ac139fee7 16 minutes ago 58.6MB
rocklee/seafile latest 026414ed5de4 17 minutes ago 898MB
再启动服务
[root@docker2 seafile]# docker-compose up -d
Creating network "seafile_seafile-net" with the default driver
Creating seafile-mysql ... done
Creating seafile-memcached ... done
Creating seafile ... done