如何找出 Docker 选择了哪个随机端口?

ijt*_*ijt 7 docker

我跑了这个:

$ docker run -p 8080 --rm my_container 
Run Code Online (Sandbox Code Playgroud)

我猜将容器端口 8080 映射到主机上的某个随机可用端口。但是我如何找出哪个端口?

Seb*_*sch 7

您可以使用以下docker port命令:

docker port my_container
Run Code Online (Sandbox Code Playgroud)

此命令输出如下(以 MySQL 镜像为例):

3306/tcp -> 0.0.0.0:3306
Run Code Online (Sandbox Code Playgroud)

前面的值->指定容器端的端口。后面的值->指定主机上选择的端口。


您还可以使用主机上的特定端口运行容器(如果可用):

docker run -p "80:8080" --rm my_container
Run Code Online (Sandbox Code Playgroud)

这将给出以下输出docker port

8080/tcp -> 0.0.0.0:80
Run Code Online (Sandbox Code Playgroud)