Docker端口的不确定性

Docker port uncertainty

我正在尝试访问一个在我使用"expose"定义的端口上运行的应用程序。我得到的是:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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

我是否误解了"港口"指令的工作原理?


dockerfile中的EXPOSE是不够的。

您需要特别告诉docker在docker run上使用-P/-p标志暴露端口。

这里可以找到更详细的答案。