Docker容器修改端口映射
Docker容器修改端口映射
https://zhuanlan.zhihu.com/p/94949253
对于已经建立的docker容器,需要新增容器对主机的端口映射,主要分为三种:
一:通过修改配置文件修改docker容器端口映射
1.使用docker ps -a命令找到要修改容器的CONTAINER ID
2.运行以下命令,进入该容器目录
docker inspect【CONTAINER ID】| grep Id
cd /var/lib/docker/containers
2.停止容器
docker stop [容器id]
3.停止主机docker服务
systemctl stop docker
4.进入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容器修改端口映射相关推荐
- win10 docker 容器修改端口映射
通常容器生成后是无法通过docker界面或docker命令去修改端口映射的,以下是通过修改配置文件的方式实现: 第一步:在powershell执行以下命令找到容器hash值 docker inspec ...
- docker容器增加端口映射最佳实践(修改配置文件方式)
前言: 在日常的docker运维中,经常遇到这样一个问题:已经配置好且运行的docker容器要根据业务需要增加端口映射到宿主机,如何简单有效的解决呢? 下面以mysql容器为例,详细说明操作步骤. 一 ...
- 解决Windows下无法对docker容器进行端口映射的问题
解决Windows下无法对docker容器进行端口映射的问题 在安装了一个Windows下安装了docker,并尝试在其中运行Nginx服务,但映射完毕之后,在主机的浏览器中,打开localhost: ...
- 解决docker容器开启端口映射后,会自动在防火墙上打开端口的问题
解决docker容器开启端口映射后,会自动在防火墙上打开端口的问题 参考文章: (1)解决docker容器开启端口映射后,会自动在防火墙上打开端口的问题 (2)https://www.cnblogs. ...
- 解决windows系统无法对docker容器进行端口映射的问题
解决windows系统无法对docker容器进行端口映射的问题 参考文章: (1)解决windows系统无法对docker容器进行端口映射的问题 (2)https://www.cnblogs.com/ ...
- docker(8):docker容器的端口映射
docker(8):docker容器的端口映射 cker的端口映射,能保证在外部网络 访问 同一设备上不同容器时候 不会因为端口问题产生冲突. docker 可将容器对外提供服务的端口映射到 host ...
- Docker容器设置端口映射的方法
概念 Docker 端口映射即映射容器内应用的服务端口到本机宿主机器. #实现 当容器中运行一些网络应用,要让外部访问这些应用时,可以通过 -P 或 -p 参数两种方式来指定端口映射. 1.随机映射 ...
- docker 添加端口映射_Docker容器修改端口映射
对于已经建立的docker容器,需要新增容器对主机的端口映射,主要分为三种: 一:通过修改配置文件修改docker容器端口映射 1.使用docker ps -a命令找到要修改容器的CONTAINER ...
- docker 改host_所以到底该如何修改 docker 容器的端口映射!!!
|问题背景 docker run -d -p 9999:8080 -i --name tomcat7 tomcat:7创建容器时,指定了端口映射(-p) 如果容器运行之后发现端口需要改怎么办? 当前是 ...
最新文章
- 俄罗斯最大搜索引擎Yandex开源了一款梯度提升机器学习库CatBoost
- Boost::context模块fiber的斐波那契测试程序
- C语言的预处理、编译、汇编、链接
- 爬虫开发10.scrapy框架之日志等级和请求传参
- android 6.0版本名字,棉花糖Marshmallow 是Android 6.0的名字
- VMware12提示 已将该虚拟机配置为使用 64 位客户机操作系统。但是,无法执行 64 位操作。...
- Struts2 Action的访问路径
- python可以给你干什么-Python到底可以做什么?
- 算法复习——数位dp(不要62HUD2089)
- [转载]针对IIS7以上的ASP.NET网站自定义错误页面与异常日志总结
- tensorflow summary demo with linear-model
- RK3399基于ubuntu文件系统的audio调试
- 大学计算机基础第五版习题和课后题答案
- 数据收发过程中的网络设备状态
- 自定义circleindicator
- Android 开发都有哪些好书值得一读?
- python爬取斗鱼主播图片
- win10+centos7 双系统安装
- 进制转换与进制转换表达式
- gulp自动化环境搭建,自动化解决方案
热门文章
- Android 集成高德地图SDK
- 不能装载文档控件。请在检查浏览器的选项中检查浏览器的安全设置_Windows 7 怎么修复 Windows 中的 Wi-Fi 连接问题,我教你(六)...
- PCB 线路铜皮面积(残铜率)计算的实现方法
- 读《如何有效阅读一本书:超实用笔记读书法》
- Statistical learning Week 1 什么是统计学习?
- C语言学习笔记第五天_项目训练
- 单片机触发器或非门工作原理以及用途
- maven 打包 程序包org.project.entity不存在
- 违反唯一约束条件oracle,oracle imp遇到违反唯一约束条件 (GZW.SYS_C006112)
- 使用 OpenCV 在 Python 中检测图像中的形状