300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > docker挂载本地目录并映射端口 生产环境中的docker部署方案(多端口多容器)

docker挂载本地目录并映射端口 生产环境中的docker部署方案(多端口多容器)

时间:2018-07-19 17:34:59

相关推荐

docker挂载本地目录并映射端口 生产环境中的docker部署方案(多端口多容器)

本文解决两个问题:

1.如何在启动docker的时候将本地目录挂载到docker运行容器中?

2.如何在生产环境中进行docker的部署?部署前相比于传统的部署方式有哪些优缺点?

开始:

1.如何在启动docker的时候将本地目录挂载到docker运行容器中?

在之前的文章中讲到过,连接镜像的命令为:

#docker run -i -t -v /root/software/:/mnt/software/ --privileged=true feac5e /bin/bash

而以守护进程的方式启动命令为:

#docker run -d -p 58080:8080 --name tomcat1 /tomcat:0.1 /root/run.sh

通过对比可以发现,docker在启动的最后是用IMAGE_ID/REPOSITORY:TAG并加上需要在容器中运行的命令结束,前面都是加上各种启动参数,比如端口映射和目录映射等。

于是输入这样的命令:

#docker run-i -t -v /root/software/:/mnt/software/ --privileged=true -d -p 58080:8080 --name tomcat1 /tomcat:0.1 /root/run.sh

发现容器启动成功,初步证明加入路径映射对容器启动是没有问题的。但是还无法验证映射是否成功,加入一个测试项目将其映射到镜像的tomcat/webapps目录下进行测试。

我们先停止并删除容器。

在本地的/root/tomcat/webapps下将ROOT改为ROOT1,其它项目删除,我们来做映射然后启动。

#docker run-i -t -v /root/tomcat/webapps/ROOT1/:/opt/tomcat/webapps/ROOT1/ --privileged=true-d -p 58080:8080 --name tomcat1 /tomcat:0.1 /root/run.sh

我们发现这样是可以访问的http://127.0.0.1:58080/ROOT1/

2.如何在生产环境中进行docker的部署?部署前相比于传统的部署方式有哪些优缺点?

通过上述实验,我们可以考虑打包这样一个程序包,包中包含:程序发布的war包/解压后的tomcat、镜像文件、启动脚本。

基本思路是:tomcat作为外部路径引入镜像中运行,日志什么的也是记录到外部的tomcat中进行运行,每个项目一个镜像文件,当需要增加容器的时候,直接带参数多启动一个容器即可,尤其是对于需要动态扩容的服务来说,非常方便。

但同时有一个疑问,对于docker对外提供的服务来讲,如果在启动的时候端口没有对外提供映射就比较麻烦,所以在启动的时候需要有严格的部署和端口规划。

可参考以下的多容器多端口映射方案:

/meegomeego/article/details/50707621

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。