我在一个容器内运行多个应用程序,如apache,tomcat,elasticsearch等,并作为新映像提交。 (我不使用dockerfile)
我可以使用 docker run with /bin/sh -c /run.sh
从主机启动所有应用程序,但我不知道如何将所有服务端口号公开给主机,因此我可以访问来自主机的服务。
答案 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启动所以我使用脚本实现这一点)