正常情况下,在你创建容器时可以添加多个端口映射,写法如下,如果你已经创建容器并且启动,在想保留容器已有配置的前提下想修改添加端口映射有如下两种方法,如下,我想给 ms_tomcat 容器添加 3306 端口映射,
,
,
,依然修改ms_tomcat容器,添加 27017 端口,一定要停止docker服务,我开始忘了关闭,修改两次都没成功,修改CONTAINER ID 为容器id,查看容器id ,输入 vim /var/lib/docker/containers/ 并粘贴容器id,tab键自动补全,最后输入要修改的文件hostconfig.json,
,修改如下位置,
,在配置项 "PortBindings"添加如下配置,
,和上面类似,修改如下位置,
,在配置项 "ExposedPorts"添加如下配置,
,
,
,
方法一,通过以上命令创建新的镜像文件,run -p参数开放新端口出来;实际使用上不方便。,
方法二,宿主机(host)上修改iptables 规则,开放容器的响应端口;参考网上的命令,当我们创建nginx镜像时,并且启动nginx时,我们只能在容器内部区访问nginx的网址。所以为了容器之外能访问,需要暴露端口,也就需要了将容器内部的端口映射出去。,
docker容器暴露端口的形式有四种:,1、-p,将指定的容器端口映射到宿主机所有地址的一个随机端口,2、-p :,将容器端口映射到指定的主机端口,3、-p ::,将容器端口映射到主机指定ip的随机端口,4、-p ::,将容器端口映射到指定主机ip的指定端口,