docker容器修改端口映射
方法1
该方法需重启docker服务,所以不适用服务器上存在多个容器的环境。
# 1:停止docker容器
docker stop `docker ps -aq`
# 2:停止docker服务
systemctl stop docker
# 3:修改容器的hostconfig.json
1:cd /var/lib/docker/containers/容器id
2:vim hostconfig.json
3:找到要修改的端口,这里我需要修改的对应关系是容器的80映射给宿主机的18080
"PortBindings":{"80/tcp":[{"HostIp":"","HostPort":"18080"}]} # 前面的端口代表容器端口,后面的端口代表宿主机端口
4:保存并退出
# 4:启动docker服务
systemctl start docker
# 5:启动docker容器
docker start `docker ps -aq`
方法2
# 1:获取容器ip(container_name修改为实际容器名称)
docker inspect `container_name` | grep IPAddress
# 2:iptable转发端口,将宿主机的18080端口映射到容器的80端口
iptables -t nat -A DOCKER -p tcp --dport 18080-j DNAT --to-destination 172.17.0.2:80