方法一

  • 1、停止容器(docker stop d00254ce3af7)

  • 2、停止docker服务(systemctl stop docker)

  • 3、修改这个容器的hostconfig.json文件中的端口(原帖有人提到,如果config.v2.json里面也记录了端口,也要修改)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    cd /var/lib/docker/containers/d00254ce3af7*     #这里是CONTAINER ID

    vim hostconfig.json
    如果之前没有端口映射, 应该有这样的一段:
    "PortBindings":{}

    增加一个映射, 这样写:
    "PortBindings":{"8080/tcp":[{"HostIp":"","HostPort":"60000"}]}
    前一个数字是容器端口, 后一个是宿主机端口。将宿主机的60000端口映射到容器的8080端口
    而修改现有端口映射更简单, 把端口号改掉就行。
  • 4、启动docker服务(systemctl start docker)

  • 5、启动容器(docker start d00254ce3af7)

hostconfig.json文件

vim下执行:%!python3 -m json.tool格式化代码

image-20200516234824726

config.v2.json文件

image-20200516235443334

方法二

1、获得容器IP
将container_name 换成实际环境中的容器名

1
docker inspect `container_name` | grep IPAddress

2、iptable转发端口
将宿主机的60000端口映射到容器的8080端口

1
iptables -t nat -A  DOCKER -p tcp --dport 60000 -j DNAT --to-destination 172.17.0.2:8080