Docker跨服务器迁移
Docker的备份方式有export和save两种。
export是当前的状态,针对的是容器,docker save 是针对镜像images。
一、镜像的迁移—save
1.镜像保存
登陆到已经部署好镜像的服务器上面,执行以下命令进行导出
[root@snowed files_backup]# docker save 97fd >
docker-image-mysql-5.6.40.tar
2.将镜像导入
将刚才导出的镜像上传到你要导入的那台服务器上
[root@localhost files_backup]# scp
172.16.10.127:/root/files_backup/docker-image-mysql-5.6.40.tar
/root/files_backup/
执行以下命令镜像导入
[root@localhost files_backup]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
php5ngx v1 f609d265f7e9 8 days ago 46.3MB
nginx latest 649dcb69b782 9 days
ago 109MB
php 5.6.36-fpm-alpine3.7 d8b5fb7e3f13 2 weeks ago 57.5MB
php 7.1-fpm-alpine3.7 c8eb659d5df6 2 weeks ago 71.9MB
busybox latest 8c811b4aec35 7 weeks
ago 1.15MB
alpine 3.7 3fd9065eaf02 6 months
ago 4.15MB
alpine latest 3fd9065eaf02 6 months
ago 4.15MB
[root@localhost files_backup]# docker load <
docker-image-mysql-5.6.40.tar
a04c00996045: Loading layer
[==================================================>] 338.4kB/338.4kB
d8db74df2b64: Loading layer
[==================================================>] 10.43MB/10.43MB
e4304001211c: Loading layer
[==================================================>] 4.472MB/4.472MB
4734bc44af33: Loading layer
[==================================================>] 1.536kB/1.536kB
caaf64b32ef7: Loading layer
[==================================================>] 41.23MB/41.23MB
5f9f1e181653: Loading layer
[==================================================>] 28.16kB/28.16kB
3b23660c2700: Loading layer
[==================================================>] 3.584kB/3.584kB
c89a57e53080: Loading layer
[==================================================>] 146.1MB/146.1MB
05615e115efe: Loading layer
[==================================================>] 9.728kB/9.728kB
cda13ff08765: Loading layer
[==================================================>] 1.536kB/1.536kB
Loaded image ID:
sha256:97fdbdd65c6aa3df941925dad239bce330bfcaa9af753239e3807ce1bb0ab3cb
[root@localhost files_backup]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
php5ngx v1 f609d265f7e9 8 days ago 46.3MB
nginx latest 649dcb69b782 9 days
ago 109MB
php 5.6.36-fpm-alpine3.7 d8b5fb7e3f13 2 weeks ago 57.5MB
php 7.1-fpm-alpine3.7 c8eb659d5df6 2 weeks ago 71.9MB
97fdbdd65c6a 2 weeks ago 256MB
busybox latest 8c811b4aec35 7 weeks
ago 1.15MB
alpine 3.7 3fd9065eaf02 6 months
ago 4.15MB
alpine latest 3fd9065eaf02 6 months
ago 4.15MB
[root@localhost files_backup]# docker tag 97fd
mysql:5.6.40
[root@localhost files_backup]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
php5ngx v1 f609d265f7e9 8 days ago 46.3MB
nginx latest 649dcb69b782 9 days
ago 109MB
php 5.6.36-fpm-alpine3.7 d8b5fb7e3f13 2 weeks ago 57.5MB
php 7.1-fpm-alpine3.7 c8eb659d5df6 2 weeks ago 71.9MB
mysql 5.6.40 97fdbdd65c6a 2 weeks
ago 256MB
busybox latest 8c811b4aec35 7 weeks
ago 1.15MB
alpine 3.7 3fd9065eaf02 6 months
ago 4.15MB
alpine latest 3fd9065eaf02 6 months
ago 4.15MB
二、容器的迁移—export
1.导出容器
[root@snowed files_backup]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
dc7d1df9f846 centos:6.9 "bash" 4 hours ago Up 4 hours 0.0.0.0:1812-1813->1812-1813/udp zealous_bartik
b240be1a357e docker.io/centos:6.9 "bash" 2 days ago Up 2 days 0.0.0.0:390->389/tcp ldap-slave
e45ee6343056 centos:6.9 "bash" 4 days ago Up 3 days 0.0.0.0:389->389/tcp agitated_newton
9b130263e0d8 mysql:5.6.40 "docker-entrypoint..." 10 days ago Up 10
days 0.0.0.0:3306->3306/tcp mysql-5.6.40
[root@snowed files_backup]# docker export b240be1a357e >
docker-container-ldap-slave.tar
2.导入到新的服务器上
同样需要将刚才的导出的容器备份上传到目标服务器上,执行下面的命令
[root@localhost files_backup]# scp
172.16.10.127:/root/files_backup/docker-container-ldap-slave.tar
/root/files_backup/
[root@localhost files_backup]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
php5ngx v1 f609d265f7e9 8 days ago 46.3MB
nginx latest 649dcb69b782 9 days
ago 109MB
php 5.6.36-fpm-alpine3.7 d8b5fb7e3f13 2 weeks ago 57.5MB
php 7.1-fpm-alpine3.7 c8eb659d5df6 2 weeks ago 71.9MB
mysql 5.6.40 97fdbdd65c6a 2 weeks
ago 256MB
busybox latest 8c811b4aec35 7 weeks
ago 1.15MB
alpine 3.7 3fd9065eaf02 6 months
ago 4.15MB
alpine latest 3fd9065eaf02 6 months
ago 4.15MB
[root@localhost files_backup]# cat
docker-container-ldap-slave.tar | docker import - centos:6.9
sha256:f969ebac1e7112b095fb2a5643d7280c3d8a4bd237f3eb25dfa064eb1de5aa16
[root@localhost files_backup]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos 6.9 f969ebac1e71 About a minute
ago 620MB
php5ngx v1 f609d265f7e9 8 days ago 46.3MB
nginx latest 649dcb69b782 9 days
ago 109MB
php 5.6.36-fpm-alpine3.7 d8b5fb7e3f13 2 weeks ago 57.5MB
php 7.1-fpm-alpine3.7 c8eb659d5df6 2 weeks ago 71.9MB
mysql 5.6.40 97fdbdd65c6a 2 weeks
ago 256MB
busybox latest 8c811b4aec35 7 weeks
ago 1.15MB
alpine 3.7 3fd9065eaf02 6 months
ago 4.15MB
alpine latest 3fd9065eaf02 6 months
ago 4.15MB
注意:运行导入的镜像的时候必须带command,否则启动报如下错误
[root@localhost files_backup]# docker run -itd -p 389:389
f969
docker: Error response from daemon: No command
specified.
See 'docker run --help'.
[root@localhost files_backup]# docker run -itd -p 389:389 f969
bash
!!!The end!!!