方法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