我正在 docker 容器上安装需要端口 8080 的应用程序
为了从主机转发到容器,我已经使用以下命令启动了容器:
docker run -p 8080:8080 "image id"
我可以使用以下地址通过浏览器访问 Docker 容器内的应用程序:
docker_parent_host:8080
我需要看到这样的集装箱港口:
docker port 7d04524erte
3306/tcp -> 0.0.0.0:3306
80/tcp -> 0.0.0.0:80
8080/tcp -> 0.0.0.0:8080
我曾尝试在 dockerfile 中使用 reveal 但没有得到相同的结果,它给出了:
80/tcp
我如何才能获得与提及 -p 8080 相同的 dockerfile 中的端口转发定义?
答案1
我如何才能获得与提及相同的Dockerfile 中的端口转发的定义
-p 8080
?
你不能...
使用 Dockerfile,你只能将端口暴露给主机(即:使用EXPOSE
)——您也无法自动转发它。
-P
(或)选项将为您--publish-all
转发所有EXPOSE
端口,但这仍然不一定是理想的,因为它将使用此主机接口上的随机端口(用于docker port ${CONTAINER}
检查)。
但是您可以使用以下方式自动化Docker 组成。
例如,你可能在docker-compose.yml
:
version: '2'
services:
myservice:
restart: "no"
build: .
ports:
- 8080:8080/tcp
然后运行docker-compose up -d myservice
。