Docker容器迁移速度快不快?
- 2019 年 10 月 6 日
- 笔记
在虚拟云为主的云计算时代,想迁移一个应用或数据库,废尽周折,一般会采用重新部署或者采用专业的迁移工具进行打包迁移。在Docker时代,迁移速度、效率会超越你的想象,两个命令搞定。
一、镜像打包、镜像还原实际操作
1、用docker save micheal/nginx_web > nginx_backup.tar命令将原系统中的镜像打包保存
2、并用docker rmi c037d108f0d9删除原有的镜像。请注意删除镜像前,该镜镜不能被容器引用,否则将删除失败。

3、用docker load < nginx_backup.tar恢复保存的镜像,并用docker run –name nginx_web -d -p 8088:80 micheal/nginx_web:v1命令启动镜像。

4、用curl ifconfig.me查看本机的外网IP。最终通过某互联网的计算机访问该nginx服务成功。


5、Docker的run速度非常快,采用了“写时复制”技术。运行容器时,并不是马上把镜像的内容复制到沙盒中,而是直接链接到镜像中。只有当需要对容器中的文件进行修改时,才将需要修改的文件复制到沙盒环境的镜像中。采用“写时复制”技术,大幅提升了容器的启动速度,达到秒极启动。
二、Docker具有自己的IP地址,采用路由方式与宿主机相连接
1、我们在宿主机用route、ip addr命令发现,Docker容器的实例采用了与宿主机完全不同的网段:172.17.0.1/16。

2、同时在宿主机中,能过ping通容器的IP地址。

3、我们可以推测,我们之所以能够通过互联网访问到没有弹性IP的容器对外业务。是因为宿主机通过NAT方式将容器的业务进行了业务地址翻译。理论上,如果宿主机采用桥接方式,可以让容器具体完全的弹性IP。