很多时候,我在Docker Networking in Compose页面的Docker Compose文件中看到两次使用冒号描述的端口:
version: "3"
services:
web:
build: .
ports:
- "8000:8000"
db:
image: postgres
networks:
default:
# Use a custom driver
driver: custom-driver-1
我经常想知道为什么"8000:8000"
而不仅仅是"8000"
然后我看到了这个示例,它有两个不同的端口:
version: "3"
services:
web:
build: .
ports:
- "8000:8000"
db:
image: postgres
ports:
- "8001:5432"
有人可以解释这个端口表示的含义吗?
答案 0 :(得分:2)
第一个端口是主机端口,第二个端口是远程端口(即:在容器中)。该表达式将远程端口绑定到本地端口。
在示例中,您将容器的8080端口映射到主机的8080端口,但是使用不同的端口(例如:48080:8080)是完全正常的
答案 1 :(得分:0)
如果省略了“主机”端口和发布端口的“:”,例如。 'docker run -d -p 3000 myimage
'。 Docker将自动为您分配一个(高编号)主机端口。您可以通过运行“ docker ps
”来查看它。