docker 添加端口映射_Docker容器修改端口映射
生活随笔
收集整理的这篇文章主要介绍了
docker 添加端口映射_Docker容器修改端口映射
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
对于已经建立的docker容器,需要新增容器对主机的端口映射,主要分为三种:
一:通过修改配置文件修改docker容器端口映射
1.使用docker ps -a命令找到要修改容器的CONTAINER ID
2.运行以下命令,进入该容器目录
docker inspect【CONTAINER ID】| grep Id cd /var/lib/docker/containers2.停止容器
docker stop [容器id]3.停止主机docker服务
systemctl stop docker4.进入2得到的文件夹内,修改hostconfig.json 和 config.v2.json
vi hostconfig.json比如新增一个 80 端口,在PortBindings下边添加以下内容,端口配置之间用英文字符逗号隔开"80/tcp": [ {"HostIp": "0.0.0.0","HostPort": "80"} ] 接着修改vi config.v2.json, 找到ExposedPorts和Ports 仿照之前内容添加端口映射 "ExposedPorts": {"2000/tcp": {} },"Ports":{"2000/tcp":[{"HostIp": "0.0.0.0","HostPort": "2000"} ] },5.保存之后重启docker服务和容器
systemctl start docker docker start [docker id]二:把运行中的容器生成新的镜像,再新建容器
1.提交一个运行中的容器为镜像
docker commit [containerid] [new_imagename]2.运行新建的镜像并添加端口映射
docker run -d -p 8000:80 [imagename] /bin/sh三:修改主机iptables端口映射
docker的端口映射并不是在docker技术中实现的,而是通过宿主机的iptables来实现。通过控制网桥来做端口映射,类似路由器中设置路由端口映射。如果我们有一个容器的8000端口映射到主机的9000端口,先查看iptabes设置了什么规则:
sudo iptables -t nat -vnL结果中有一条:
Chain DOCKER (2 references) pkts bytes target prot opt in out source destination 98 5872 RETURN all -- docker0 * 0.0.0.0/0 0.0.0.0/0 237 14316 DNAT tcp -- !docker0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:9000 to:172.17.0.3:8000我们可以看到docker创建了一个名为DOKCER的自定义的链条Chain。而我开放8000端口的容器的ip是172.17.0.3。
也可以通过inspect命令查看容器ip
docker inspect [containerId] |grep IPAddress我们想再增加一个端口映射,比如8081->81,就在这个链条是再加一条规则:
sudo iptables -t nat -A DOCKER -p tcp --dport 8081 -j DNAT --to-destination 172.17.0.3:81加错了或者想修改:先显示行号查看
sudo iptables -t nat -vnL DOCKER --line-number删除规则3
sudo iptables -t nat -D DOCKER 3总结
以上是生活随笔为你收集整理的docker 添加端口映射_Docker容器修改端口映射的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: cent 8.0 安装tomcat 9.
- 下一篇: 程序员合同日期不到想辞职_程序员被迫辞职