Centos7 docker容器启动后添加端口映射
docker容器启动后添加端口映射的两种方法:
一、通过修改防火墙策略添加端口映射
docker容器已创建好,但是想在容器内配置tomcat监控,需要新的端口去访问,但是映射时没有映射多余端口,此时,我们可以通过防火墙策略去映射端口,如下:
iptables -t nat -A DOCKER -p tcp --dport 12580 -j DNAT --to 172.20.0.3:12580
iptables -t nat -A POSTROUTING -p tcp -s 172.20.0.3 -d 172.20.0.3 --dport 12580 -j MASQUERADE
iptables -A DOCKER -p tcp --dport 12580 -d 172.20.0.3 -j ACCEPT
#172.20.0.3为容器IP
#12580为新映射端口
二、通过修改容器配置文件添加端口映射
docker容器被创建后会在服务器上保存一个文件夹,配置文件也放在此处,解决方法就是找到映射段都得配置文件修改就行了。
1、修改之前先停掉docker
$ systemcel stop docker
2、在 /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
5、执行成功之后启动容器然后查看容器运行状态就可以看到新增加的端口在映射关系里已存在。
6、同理也可以去除端口映射
本文作者:香菜哥哥
本文链接:https://www.cnblogs.com/yizhipanghu/p/11792800.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
分类:
,
标签:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步