在Docker中,端口映射是将容器内部的端口绑定到宿主机端口的过程,使得外部可以访问容器内运行的服务。以下是几种常见的端口映射方法:
使用-p
或--publish
参数:
docker run -p [宿主机端口]:[容器端口] [镜像名]
示例:
docker run -p 8080:80 nginx
这将把容器内部的80端口映射到宿主机的8080端口。
docker run -p 8080:80 -p 3306:3306 mysql
docker run -p 127.0.0.1:8080:80 nginx
这样只有本地主机可以访问8080端口。
docker run -P nginx
使用大写的-P
参数,Docker会自动将容器中所有EXPOSE
的端口映射到宿主机的高位随机端口。
docker port [容器名或ID]
version: '3'
services:
web:
image: nginx
ports:
- "8080:80"
- "8443:443"
默认是TCP协议,也可以指定UDP:
docker run -p 8080:80/udp nginx
-P
时,容器必须通过EXPOSE
指令声明要暴露的端口docker run -p 8000-9000:80 nginx
这将把容器80端口映射到宿主机8000-9000范围内的随机端口。
不同的网络模式会影响端口映射行为:
- bridge
(默认):端口映射生效
- host
:直接使用主机网络,无需映射
- none
:无网络访问
希望这些信息能帮助你正确配置Docker容器的端口映射!