本文主要是介绍Docker多端口映射和镜像迁移多份部署,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
阅读此文章前请以上篇博文为基础:http://blog.csdn.net/lishirong/article/details/72677860
本片博文主要解决以下几个问题:
1.在一个docker中映射多个端口
2.一个镜像在同一主机上的多份部署
3.镜像迁移到其它linux主机进行部署
开始吧!
一、单docker多端口映射
1.首先得到现有的镜像
#docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
sdzn.com/tomcat 0.1 af2454df9380 10 seconds ago 514.6 MB
docker.io/centos 7.2.1511 feac5e0dfdb2 8 months ago 194.6 MB
2.将18080和28080均映射到容器的8080端口
#docker run -d -p 18080:8080 -p 28080:8080 --name tomcat1 sdzn.com/tomcat:0.1 /root/run.sh
测试访问均能成功http://127.0.0.1:18080和http://127.0.0.1:28080
3.查看当前正在运行的镜像
#docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
75626d3c702b sdzn.com/tomcat:0.1 "/root/run.sh" 2 minutes ago Up 2 minutes 0.0.0.0:18080->8080/tcp, 0.0.0.0:28080->8080/tcp tomcat1
3.额外增加一个正在运行的镜像
#docker run -d -p 38080:8080 -p 48080:8080 --name tomcat2 sdzn.com/tomcat:0.1 /root/run.sh
#docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6ccc5564b93e sdzn.com/tomcat:0.1 "/root/run.sh" 14 seconds ago Up 4 seconds 0.0.0.0:38080->8080/tcp, 0.0.0.0:48080->8080/tcp tomcat2
75626d3c702b sdzn.com/tomcat:0.1 "/root/run.sh" 6 minutes ago Up 6 minutes 0.0.0.0:18080->8080/tcp, 0.0.0.0:28080->8080/tcp tomcat1
4.停止一个容器和启动一个容器
#docker stop tomcat2
#docker start tomcat2
#docker restart tomcat2
这样可以重启一个容器的服务,达到暂时减小内存占用,恢复初始状态的作用,但相应的容器的增量数据会被销毁。
5.看下我1G内存的虚拟机跑了5个docker容器实例
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4c4b3643d6a8 sdzn.com/tomcat:0.1 "/root/run.sh" About a minute ago Up About a minute 0.0.0.0:8085->8080/tcp, 0.0.0.0:8086->8080/tcp tomcat5
125574dfe0fc sdzn.com/tomcat:0.1 "/root/run.sh" 2 minutes ago Up 2 minutes 0.0.0.0:8083->8080/tcp, 0.0.0.0:8084->8080/tcp tomcat4
79f89f9df907 sdzn.com/tomcat:0.1 "/root/run.sh" 3 minutes ago Up 3 minutes 0.0.0.0:8081->8080/tcp, 0.0.0.0:8082->8080/tcp tomcat3
6ccc5564b93e sdzn.com/tomcat:0.1 "/root/run.sh" 21 minutes ago Up 12 minutes 0.0.0.0:38080->8080/tcp, 0.0.0.0:48080->8080/tcp tomcat2
75626d3c702b sdzn.com/tomcat:0.1 "/root/run.sh" 28 minutes ago Up 27 minutes 0.0.0.0:18080->8080/tcp, 0.0.0.0:28080->8080/tcp tomcat1
6.给指定容器额外增加一个端口映射
百度上并没有找到相关信息,大多数建议是退出并另存为一个容器重新启动。
二、单镜像单机多份部署
在“一”中已经有提到,单镜像可以理解是静态的,可以从镜像发布为多个容器来服务。
三、镜像迁移其它linux部署
1.镜像导出,只能讲容器ID进行导出
#docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4c4b3643d6a8 sdzn.com/tomcat:0.1 "/root/run.sh" 56 minutes ago Up 56 minutes 0.0.0.0:8085->8080/tcp, 0.0.0.0:8086->8080/tcp tomcat5
125574dfe0fc sdzn.com/tomcat:0.1 "/root/run.sh" 57 minutes ago Exited (137) 22 minutes ago tomcat4
79f89f9df907 sdzn.com/tomcat:0.1 "/root/run.sh" 58 minutes ago Exited (137) 22 minutes ago tomcat3
6ccc5564b93e sdzn.com/tomcat:0.1 "/root/run.sh" About an hour ago Exited (137) 23 minutes ago tomcat2
75626d3c702b sdzn.com/tomcat:0.1 "/root/run.sh" About an hour ago Exited (137) 23 minutes ago tomcat1
3dd730d024a3 feac "/bin/bash" About an hour ago Exited (0) About an hour ago zen_hypatia
#docker export 75626d3c702b>tomcat1.tar
或者保存镜像文件也可
#docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
sdzn.com/tomcat 0.2 3d37243864ed 37 seconds ago 509 MB
sdzn.com/tomcat 0.1 c4370254990a 6 hours ago 518 MB
docker.io/tomcat latest 3695a0fe8320 3 days ago 334.3 MB
docker.io/centos 7.2.1511 feac5e0dfdb2 8 months ago 194.6 MB
#docker save 3d3>tomcat.tar
#ls
Desktop tomcat1.tar 模板 图片 下载 桌面
install_agent.sh 公共 视频 文档 音乐
2.将tomcat1.tar导入到另一个ubuntu14的系统下
#ls
tomcat1.tar
3.导入tar包到镜像中
#cat tomcat1.tar | docker import - sdzn.com/tomcat:0.1
#docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
sdzn.com/tomcat 0.1 2c26a93be79d 23 seconds ago 514.7 MB
4.启动镜像
# docker run -d -p 8080:8080 --name tomcat1 sdzn.com/tomcat:0.1 /root/run.sh
#docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9d760c4a36aa sdzn.com/tomcat:0.1 "/root/run.sh" 30 seconds ago Up 27 seconds 0.0.0.0:8080->8080/tcp tomcat1
5.访问测试:
成功!至此完成了docker从CentOs7的导出和向Ubuntu的导入。
文献参考:
1.http://blog.csdn.net/meegomeego/article/details/50707621
2.http://blog.csdn.net/pipisorry/article/details/51330126
这篇关于Docker多端口映射和镜像迁移多份部署的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!