Docker 端口映射是将容器内部的端口映射到主机上的一个端口,以使外部可以通过主机上的端口访问容器内的服务。以下是 Docker 端口映射的实现方法:

1. 使用 -p 选项:

通过使用 -p 选项,你可以指定端口映射规则。语法为 -p host_port:container_port。
docker run -d -p 8080:80 myimage

上述命令将容器内的端口 80 映射到主机的端口 8080。现在,可以通过访问 http://localhost:8080 或 http://<主机IP>:8080 来访问容器内的服务。

2. 映射多个端口:

你也可以映射多个端口,例如:
docker run -d -p 8080:80 -p 3000:3000 myimage

这将容器内的端口 80 映射到主机的端口 8080,同时将容器内的端口 3000 映射到主机的端口 3000。

3. 随机映射主机端口:

如果你希望 Docker 在主机上选择一个未使用的端口,可以省略主机端口部分:
docker run -d -p 80 myimage

这将在主机上随机选择一个未使用的端口,并将容器内的端口 80 映射到该端口。

4. 绑定到所有网络接口:

默认情况下,端口映射只绑定到主机的 localhost 地址。如果你希望可以从主机网络的所有接口访问容器,可以使用 0.0.0.0:
docker run -d -p 0.0.0.0:8080:80 myimage

这将容器内的端口 80 映射到主机的所有网络接口上的端口 8080。

5. UDP 端口映射:

默认情况下,端口映射使用的是 TCP 协议。如果需要映射 UDP 端口,可以使用 --protocol 选项:
docker run -d -p 8080:80/udp myimage

这将容器内的 UDP 端口 80 映射到主机的端口 8080。

端口映射是 Docker 中常见且重要的功能之一,允许容器内的服务通过主机端口对外提供访问。根据具体需求,可以灵活配置端口映射规则。


转载请注明出处:http://www.zyzy.cn/article/detail/10026/Docker