我为openvpn创建了一个docker镜像。但是,当我使用docker inspect命令从该映像中获取配置时,我总是在ContainerConfig中看到此设置
"ContainerConfig": {
"Hostname": "cfd8618fa650",
"ExposedPorts": {
"11194/tcp": {}
},这并不好,因为每次我运行这个镜像时,它都会自动暴露端口11194,即使我不想这样做。有人知道如何删除此配置吗?
发布于 2017-04-07 22:13:48
请注意,11194是默认的OpenVpn端口,所以它被Docker公开是很正常的。
无论如何,如果你有Dockerfile,显然你可以构建一个新的镜像,从Dockerfile本身中删除EXPOSE 11194行。
但是如果您直接从repo中运行镜像,或者无法移除容器,端口将会暴露,但您可以将其绑定到特定的ip。
因为端口映射-p格式可以是
ip:主机端口:容器端口|ip::容器端口|主机端口:容器端口| containerPort
您可以将主机端口绑定到单个主机(例如localhost),而不是绑定到所有主机,例如
docker run -p 127.0.0.1:11194:11194 ...因此端口11194 (或您在本地分配的任何端口号)只能从本地主机访问。
否则,您可以通过iptables或其他防火墙关闭端口。
站点Docker and IPtables很好地解释了docker端口绑定、iptables转发规则等。
https://stackoverflow.com/questions/43221188
复制相似问题