如何修改从inspect命令得到的docker image config

我为openvpn创build了一个docker镜像。 但是当我使用docker inspect命令从这个图像获取configuration时,我总是在ContainerConfig看到这个设置:

 "ContainerConfig": { "Hostname": "cfd8618fa650", "ExposedPorts": { "11194/tcp": {} }, 

这是不好的,因为每次我运行这个图像,它会自动暴露端口11194即使我不想。 有没有人知道如何删除这个configuration?

请注意,11194是默认的OpenVpn端口,所以它被Docker公开是很正常的。

无论如何,如果你有Dockerfile,显然你可以build立一个新的镜像,从Dockerfile本身删除EXPOSE 11194

但是,如果直接从回购库中运行图像,或者无法删除容器,端口将被暴露,但您可以将其绑定到特定的ip。

因为端口映射-p格式可以

ip:hostPort:containerPort | ip :: containerPort | hostPort:containerPort | containerPort

例如,您可以将主机端口绑定到单个主机(例如本地主机),而不是整个世界

 docker run -p 127.0.0.1:11194:11194 ... 

因此,端口11194(或本地分配的任何端口号)只能从本地主机访问。

否则,您可以通过iptables或其他防火墙closures端口。

站点Docker和IPtables解释了很好的docker端口绑定,iptables转发规则等等。