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