修改Docker容器映射端口
今天在服务器上安装ASF
的时候,出现内网使用127.0.0.1:1242
能够正常访问使用外网ip
却不行,最终发现是我之前创建容器的时候映射的1242
端口是指定的ipv4
和ipv6
的回环地址,其实直接使用-p 1242:1242
就可以直接映射所有ip
端口,我偏偏去指定了ip
,简直是自己给自己挖坑。
修改映射端口
切换到该路径/var/lib/docker/containers
该路径下的文件名是docker
镜像的hash
值,可以通过docker ps
或者docker inspect containername
查看
通过CONTAINER ID
和开头对应可以看出来
打开你要修改容器对应的目录下的hostconfig.json
文件。
修改之前先暂停docker
,不然修改之后重启服务会被还原的。
systemctl stop docker
PortBindings 这个对象下就是我之前设置的端口映射信息了
结构是PortBindings->容器端口->宿主机ip + 端口信息
"PortBindings": {
"1242/tcp": [{
"HostIp": "127.0.0.1",
"HostPort": "1242"
}, {
"HostIp": "::1",
"HostPort": "1242"
}]
}
我还是保留之前指定ip的形式,添加了一个服务器外网ip就好了
修改好之后需要重启整个docker
服务
systemctl restart docker
Docker这个玩意就一神器
是的,部署超级方便