docker 运行 带 -p 和单个端口(而不是映射)

docker run with -p and a single port (instead of mapping)

在 docker 中创建容器时,以下命令有何不同?

docker run -d -p 8080 sample/image

docker run -d -p 8080:8080 sample/image

我看到他们中的大多数人使用第二个命令,但我不确定它们是否意味着不同的东西,或者第一个是否是 shorthand。

我在这上面找不到任何 material。

docker run -d -p 8080 sample/image

将容器的 8080 端口公开为主机上的任意端口。哪个端口是 Docker.

然而,

docker run -d -p 8080:8080 sample/image

将容器的 8080 端口公开为主机上的 8080 端口。


在这两种情况下,您都可以使用 docker inspect 甚至 docker ps:

查看映射
380af8c2bcc6  ubuntu  "bash"  15 seconds ago  Up 13 seconds  0.0.0.0:32768->1234/tcp elegant_meitner     

在这种情况下,容器的端口 1234 在主机上暴露为端口 32768