Docker 端口不确定性

标签 docker

我正在尝试访问我使用“EXPOSE”定义的端口上正在运行的应用程序。
这是我得到的:

docker@boot2docker:~$ docker ps
CONTAINER ID        IMAGE                COMMAND                CREATED             STATUS              PORTS
    NAMES
653d8ee23260        nginx:latest         "nginx -g 'daemon of   2 minutes ago       Up 2 minutes        80/tcp, 443/tcp
    insane_thompson
007cfcd0f539        highlighter:latest   "java -jar -Xmx1500m   8 minutes ago       Up 8 minutes        7777/tcp
    elated_kirch
docker@boot2docker:~$ docker ps
CONTAINER ID        IMAGE                COMMAND                CREATED             STATUS              PORTS     NAMES
653d8ee23260        nginx:latest         "nginx -g 'daemon of   2 minutes ago       Up 2 minutes        80/tcp, 443/tcp    insane_thompson
007cfcd0f539        highlighter:latest   "java -jar -Xmx1500m   8 minutes ago       Up 8 minutes        7777/tcp    elated_kirch

docker@boot2docker:~$ docker port 007cfcd0f539
docker@boot2docker:~$ docker port 653d8ee23260

docker@boot2docker:~$ docker port 653d8ee23260 80
FATA[0000] Error: No public port '80/tcp' published for 653d8ee23260

docker@boot2docker:~$ docker port 007cfcd0f539 7777
FATA[0000] Error: No public port '7777/tcp' published for 007cfcd0f539

我是否误解了“port”命令的工作原理?

最佳答案

EXPOSE 在 Dockerfile 中是不够的。

您需要明确告诉 docker 在 docker run 上使用 -P/-p flags 公开端口.

可以找到更详细的答案 here .

关于Docker 端口不确定性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27951978/

相关文章:

docker - 使用$()时,Docker rm命令抛出错误

docker - 告诉Docker构建忽略RUN命令顺序的更改

docker - Azure Devops : Docker Build task image name starts with ***/

docker - Linux和Windows上的Docker-Compose之间有区别吗?

Docker:保存 - 不产生输出

docker - 为什么docker-compose.yml文件在Windows 10上不起作用?但是同一文件可以在Mac上运行

使用 Dockerfile 预装插件的 WordPress 图像

java - Docker 是否在 VM 之上提供任何内存效率?

ruby-on-rails - 在 AWS Elastic Beanstalk 上使用 Docker 预编译 Assets

postgresql - 无法查看创建的架构中的任何关系