如何在 dockerfile 中创建端口转发

如何在 dockerfile 中创建端口转发

我正在 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

相关内容