docker给运行中的容器添加映射端口的几种方法

系列文章

docker 可以给运行给的容器添加映射端口

方法1网传不行但实测可用,方法2和3亲测可用

方法1


  1. 获得容器IP

    container_name 换成实际环境中的容器名

1
docker inspect <container_name> | grep IPAddress
  1. iptable转发端口

将容器的 8000 端口映射到docker主机的 8001 端口

1
iptables -t nat -A DOCKER -p tcp --dport 8001 -j DNAT --to-destination 172.17.0.19:8000

方法2


  1. 提交一个运行中的容器为镜像
1
docker commit -a "<container_name>" -m "<a new image>" web  aaa:v1
  1. 运行镜像并添加端口
1
docker run -it --name web_demo -p 8000:80 aaa:v1 /bin/bash

方法3

这个方法要先停掉容器,还需重启docker引擎,正式环境慎用

  1. 首先stop容器,在宿主机编辑hostconfig.json

添加映射,容器端口8082映射到宿主8888

1
2
3
4
5
6
7
8
9
10
11
12
13
14
"PortBindings": {
"8081/tcp": [
{
"HostIp": "",
"HostPort": "8085"
}
],
"8082/tcp": [
{
"HostIp": "",
"HostPort": "8888"
}
]
}
  1. 重启docker引擎

systemctl restart docker.service

3.启动容器

docker start [容器名]

4.查看容器端口映射

docker port 容器名