docker容器运行后如何端口映射
docker容器运行后如何添加端口映射,将内部端口映射到主机?
方法一:删除原镜像,重新构建镜像,麻烦,应用需要重新部署
方法二:通过commit构建新的镜像后然后重新运行容器,添加端口,数据可以保留,但是会造成镜像臃肿,费时
方法三(推荐):通过firewalld端口转发来实现端口映射:无需重新构建镜像,无需重新部署应用,保持原容器不变,操作方法如下:
首先开启ip地址伪装firewall-cmd --zone=external --add-masquerade
添加转发规则:firewall-cmd --add-forward-port=port=26:proto=tcp:toaddr=172.18.0.2:toport=22 --permanent
上述命令表示将本机的26端口转发到docker容器的22端口(本例子中的docker容器是一个centos系统,172.18.0.2表示容器ip,建议设置成固定Ip,可以保证转发的准确性,因为docker容器的启动先后顺序决定了内部容器的ip地址)
其他端口的转发也按照这个执行即可


