我正在需要端口 8080 的 docker 容器上安装应用程序
为了从主机转发到容器,我已经启动了容器:
docker run -p 8080:8080 "image id"
Run Code Online (Sandbox Code Playgroud)
我可以使用以下地址通过浏览器访问 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
Run Code Online (Sandbox Code Playgroud)
我试图在 dockerfile 中使用暴露,但没有给我相同的结果,它给了我:
80/tcp
Run Code Online (Sandbox Code Playgroud)
我怎样才能在 dockerfile 中获得与提到 -p 8080 相同的端口转发的定义?
如何获得与提及相同的 Dockerfile 中端口转发的定义
-p 8080?
你不能...
使用 Dockerfile,您只能将端口公开给主机(即:使用EXPOSE)-您也不能自动转发它。
该-P(或--publish-all)选项将转发所有的EXPOSE“d端口给你,但是这仍然是不一定理想,因为它会使用这个主机接口随机端口(使用docker port ${CONTAINER}来检查)。
但是,您可以使用Docker Compose使其自动化。
例如,您可能有以下内容docker-compose.yml:
version: '2'
services:
myservice:
restart: "no"
build: .
ports:
- 8080:8080/tcp
Run Code Online (Sandbox Code Playgroud)
然后运行docker-compose up -d myservice。
| 归档时间: |
|
| 查看次数: |
14376 次 |
| 最近记录: |