docker-compose容器端口映射

一、最常见的写法(主机 8000 → 容器 8082)

docker-compose.yml 里:

1
2
3
4
5
6
7
version: "3.8"

services:
web:
image: myapp:latest
ports:
- "8000:8082" # 主机:容器

解释:

  • 访问宿主机 http://localhost:8000 实际上转发到容器的 8082 端口。
  • 常用于宿主机暴露端口不同于容器服务端口的情况。

二、主机和容器端口一致

1
2
ports:
- "8082:8082"

此时宿主机 8082 直接访问容器 8082,无端口转换。


三、多个服务端口映射

1
2
3
ports:
- "8000:8000"
- "8082:8082"

或不同端口:

1
2
3
ports:
- "8000:8082"
- "9000:9001"

四、绑定特定主机 IP

1
2
ports:
- "127.0.0.1:8000:8082"

这样容器端口仅能通过本机访问,不对外网开放。


五、简写命令行方式运行

如果不是用 Compose,而是单个容器:

1
docker run -p 8000:8082 myapp