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

The*_*boy 1 containers docker dockerfile

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

docker run -d -p 8080 sample/image

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

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

我找不到任何这方面的材料。

Tho*_*zco 5

docker run -d -p 8080 sample/image
Run Code Online (Sandbox Code Playgroud)

将容器的端口公开8080为主机上的任意端口。哪个端口由 Docker 决定。

然而,

docker run -d -p 8080:8080 sample/image
Run Code Online (Sandbox Code Playgroud)

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


docker inspect在这两种情况下,您都可以使用, 甚至来查看映射docker ps

380af8c2bcc6  ubuntu  "bash"  15 seconds ago  Up 13 seconds  0.0.0.0:32768->1234/tcp elegant_meitner     
Run Code Online (Sandbox Code Playgroud)

在这种情况下,1234容器的端口作为32768主机上的端口公开。