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、同理也可以去除端口映射