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

时间:2018-03-02 17:17:23

标签: docker

我跑了这个:

$ docker run -p 8080 --rm my_container 

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

2 个答案:

答案 0 :(得分:3)

您可以使用docker port命令:

@EntityGraph

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

docker port my_container

3306/tcp -> 0.0.0.0:3306 之前的值指定容器端的端口。 ->之后的值指定主机上选定的端口。

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

->

这将在docker run -p "80:8080" --rm my_container 上提供以下输出:

docker port

答案 1 :(得分:0)

您可以通过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