绑定docker容器服务在特定端口上启动

时间:2016-03-09 17:32:51

标签: docker

我在一个容器内运行多个应用程序,如apache,tomcat,elasticsearch等,并作为新映像提交。 (我不使用dockerfile)

我可以使用 docker run with /bin/sh -c /run.sh 从主机启动所有应用程序,但我不知道如何将所有服务端口号公开给主机,因此我可以访问来自主机的服务。

2 个答案:

答案 0 :(得分:3)

docker command line reference中所述,您可以使用-p标志在运行容器时公开特定端口。

Docker网站声明:

  

注意:-p标志可以多次使用以配置多个端口。

https://docs.docker.com/engine/userguide/networking/default_network/dockerlinks/

答案 1 :(得分:1)

使用

启动容器
docker run -p host_port:container_port

要公开多个端口,只需提供多个-p参数:

docker run -p host_port1:container_port1 -p host_port2:container_port2 **image_name** /bin/sh -c /run.sh

其中 /run.sh 文件包含位于图片内的启动脚本/手动启动服务。
(在我的情况下,我的应用程序没有通过image_bootup启动所以我使用脚本实现这一点)