我运行了一个nginx容器,但未指定主机端口。
docker container run -d --name engineone nginx
当我检查正在运行的容器时,它表明我运行了该容器。
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d6b1d457b0b1 nginx "nginx -g 'daemon of…" About an hour ago Up 58 minutes 80/tcp engineone
现在,我想知道engineone
容器占用了哪个端口。所以我跑了..
docker container port engineone
但是输出什么也没有。我对Docker网络的工作方式有一些了解,但我想知道这是怎么可能的。它真的可以在没有主机端口的情况下运行吗?
答案 0 :(得分:1)
整天在docker docs中完成一些研究。
默认情况下,创建容器时,它不会将其任何端口发布到外界。要使端口可用于Docker外部的服务或未连接到容器网络的Docker容器,请使用
--publish
或-p
标志。这将创建一个防火墙规则,该规则将容器端口映射到Docker主机上的端口。
因此,在这里docker不会分配端口util,我们告诉它这样做。