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端口上。
更多信息here。
如果您认为 docker port
命令的输出令人困惑,请使用 docker inspect 命令来检索端口映射。正如官方文档中提到的here
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"
}
]
},
|
|
希望对您有所帮助。
我是运行一个数据库容器。我知道要检查端口映射,我可以使用命令 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端口上。
更多信息here。
如果您认为 docker port
命令的输出令人困惑,请使用 docker inspect 命令来检索端口映射。正如官方文档中提到的here
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"
}
]
},
|
|
希望对您有所帮助。