# 基础端口映射语法
docker run -d -p [宿主机端口]:[容器端口] [镜像名称]
# 示例:容器80端口→宿主机8080
docker run -d -p 8080:80 nginx
映射类型 | 命令示例 | 说明文档 |
---|---|---|
全接口映射 | bash |
绑定所有网络接口 |
指定IP+端口 | bash |
精准控制访问源 |
动态端口分配 | bash |
自动分配宿主机端口 |
UDP协议支持 | bash |
支持UDP流量 |
# 查看端口映射关系
docker port nginx-container
# 输出示例:80/tcp -> 0.0.0.0:32768
# 创建命名容器
docker run -d --name mysql-db mysql:8.0
# 重命名运行中容器
docker rename old-name new-name
方式 | 命令示例 | 适用场景 |
---|---|---|
Legacy Link | —bash –link mysql:db — |
兼容旧版(不推荐) |
自定义网络 | —bash docker network create app-net — |
生产环境推荐 |
# 创建隔离网络
docker network create --driver bridge app-net
# 容器加入同一网络
docker run -d --network app-net --name redis redis:alpine
docker run -d --network app-net --name app myapp:latest
场景 | 推荐方案 | 性能指标 | 安全等级 |
---|---|---|---|
单机开发 | 端口映射+默认bridge网络 | ★★☆☆☆ | ★☆☆☆☆ |
微服务集群 | 自定义overlay网络 | ★★★★☆ | ★★★☆☆ |
生产环境 | 专用网络+服务网格 | ★★★★★ | ★★★★★ |
docker network create --internal private-net
iptables -A DOCKER -p tcp --dport 3306 -s 10.0.0.0/24 -j DROP
docker exec -it app curl http://redis:6379
docker inspect --format='{{json .NetworkSettings}}' app
tcpdump -i docker0 port 80
docker run -d -p 8000-9000:8000-9000 myapp
通过合理运用端口映射和容器互联技术,可以构建出既安全又高效的容器化应用架构。建议开发环境使用简单的端口映射快速验证,生产环境采用自定义网络配合服务发现机制实现服务治理。
关注 是对原创的最大认可,你的每一个关注 ,都是技术生态圈的+1节点!