如何找出Docker选择的随机端口?

问题描述 投票:1回答:2

我跑了这个:

$ docker run -p 8080 --rm my_container 

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

docker
2个回答
3
投票

您可以使用docker port命令:

docker port my_container

此命令输出如下(使用MySQL映像的示例):

3306/tcp -> 0.0.0.0:3306

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


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

docker run -p "80:8080" --rm my_container

这将在docker port上提供以下输出:

8080/tcp -> 0.0.0.0:80

1
投票

您可以通过inspecting找到容器(其中$INSTANCE_ID是您的容器ID):

docker inspect --format='{{range $p, $conf := .NetworkSettings.Ports}} {{$p}} -> {{(index $conf 0).HostPort}} {{end}}' $INSTANCE_ID

或者通过检查运行容器:

docker ps | grep container_name_part

或者只列出所有正在运行的容器

docker ps

或者,您可以绑定特定端口,因此不会选择随机端口-p 8080:8080

© www.soinside.com 2019 - 2024. All rights reserved.