Docker 端口不确定

Docker port uncertainty

我正在尝试访问我使用 "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 使用 -P/-p flags.

docker run 上公开端口

可以找到更详细的答案 here