前言
在一次面试中,面试官问:docker 暴露一个端口,该怎么做?
一脸蒙,不知道怎么操作的。
参考文章
1. docker暴露端口、端口映射
1.1 iptables
- 获得容器 IP
docker ps
# [container_name]为docker容器名称
docker inspect [container_name] | grep IPAddress
- iptables 转发端口
# 本地主机的端口8001上暴露容器的端口8000
iptables -t nat -A DOCKER -p tcp -dport 8001 -j DNAT --to-destination 192.169.1.1:8000
1.2 -p、-P
使用 -p 标识来指定容器端口绑定到主机端口。
两种方式的区别是:
- -P :是容器内部端口随机映射到主机端口。
- -p : 是容器内部端口绑定到指定的主机端口
操作步骤:
- docker ps 查看当前容器
- docker run -d -p [ip 地址:端口] 容器名
docker run -p <host_port>:<container_port>
- docker ps 查看映射情况
2. 总结
- docker ps 的使用
- docker inspect | grep IPAddress 的含义
- iptable 的使用
- -p 、-P