簡體   English   中英

docker主機端口和容器端口

[英]docker host port and container port

我正在運行數據庫容器。 我知道要檢查端口映射,我可以使用命令docker port <container_id or name> 因此,我嘗試了該命令:

$docker port ea72b2c4ba47
3306/tcp -> 127.0.0.1:3666

我看到了輸出,但是哪個是主機使用的端口,哪個是容器的端口?

3306/tcp -> 127.0.0.1:3666表示容器內的端口3306暴露在主機的端口3666上。

更多信息在這里

如果您認為docker port命令的輸出令人困惑,請使用docker inspect命令檢索端口映射。 如前所述這里的官方文檔。

docker ps docker port docker inspect是有用的命令,用於獲取有關端口映射的信息。

[user@jumphost ~]$ docker run -itd -p 3666:3306 alpine sh
Unable to find image 'alpine:latest' locally
latest: Pulling from library/alpine
050382585609: Pull complete 
Digest: sha256:6a92cd1fcdc8d8cdec60f33dda4db2cb1fcdcacf3410a8e05b3741f44a9b5998
Status: Downloaded newer image for alpine:latest
428c80bfca4e60e474f82fc5fe9c1c0963ff2a2f878a70799dc5da5cb232f27a
[user@jumphost ~]$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                    NAMES
428c80bfca4e        alpine              "sh"                3 seconds ago       Up 3 seconds        0.0.0.0:3666->3306/tcp   fervent_poitras
[user@jumphost ~]$ docker port 428c80bfca4e
3306/tcp -> 0.0.0.0:3666
[user@jumphost ~]$ docker inspect --format='{{range $p, $conf := .NetworkSettings.Ports}} {{$p}} -> {{(index $conf 0).HostPort}} {{end}}' 428c80bfca4e
 3306/tcp -> 3666 
[user@jumphost ~]$

docker inspect comtainer-id還提供了端口的清晰映射。

$ docker inspect 428c80bfca4e
     |
     |
"Ports": {
                "3306/tcp": [
                    {
                        "HostIp": "0.0.0.0",
                        "HostPort": "3666"
                    }
                ]
            },
     |
     |

希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM