我跑了这个:
$ docker run -p 8080 --rm my_container
我想将容器端口8080映射到主机上的一些随机可用端口。但是我如何找出哪个端口?
答案 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
。