Docker 给一存在的容器添加端口映射
转发:https://blog.csdn.net/lypeng_/article/details/98176138
在docker运行容器时需要指定映射端口,那如果刚开始没有考虑的那么周全,后期遇到需要添加的端口时该怎么办呢。
网上常见的方法有两种:
1.配置防火墙转发端口。
2.把docker容器打包成镜像,然后以该镜像为基础新建一个容器。
3.更改docker容器的配置文件
更改docker容器的配置文件
1、修改之前先停掉docker
systemctl stop docker
2、修改hostconfig.json文件
在 /var/lib/docker/containers/[容器ID]/下找到hostconfig.json
找到映射IP的位置,复制一个已映射的IP,修改为自己需要的就好(888是我新增的)
"PortBindings": {
"888/tcp": [
{
"HostIp": "",
"HostPort": "888"
}
],
"21/tcp": [
{
"HostIp": "",
"HostPort": "21"
}
]
}
3.相同的目录下找到config.v2.json该文件中有两处需要修改
"ExposedPorts": {
"888/tcp": {},
"21/tcp": {}
}
"Ports": {
"888/tcp": [
{
"HostIp": "0.0.0.0",
"HostPort": "888"
}
],
"21/tcp": [
{
"HostIp": "0.0.0.0",
"HostPort": "21"
}
]
}
4.修改完之后启动docker
systemctl start docker
执行成功之后启动容器然后查看容器运行状态就可以看到新增加的端口在映射关系里已存在。
同理也可以去除端口映射。