对于已经建立的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 改host_Docker容器修改端口映射相关推荐

  1. Docker容器修改端口映射

    Docker容器修改端口映射 https://zhuanlan.zhihu.com/p/94949253 对于已经建立的docker容器,需要新增容器对主机的端口映射,主要分为三种: 一:通过修改配置 ...

  2. win10 docker 容器修改端口映射

    通常容器生成后是无法通过docker界面或docker命令去修改端口映射的,以下是通过修改配置文件的方式实现: 第一步:在powershell执行以下命令找到容器hash值 docker inspec ...

  3. docker 添加端口映射_Docker容器修改端口映射

    对于已经建立的docker容器,需要新增容器对主机的端口映射,主要分为三种: 一:通过修改配置文件修改docker容器端口映射 1.使用docker ps -a命令找到要修改容器的CONTAINER ...

  4. docker 文件存放路径, 修改端口映射

    文章目录 如何获取容器的启动命令 1, 容器层:文件存放路径 后天修改容器端口 a, 先提交旧容器为新的镜像,再启动新容器 b, 修改容器配置文件置文件:hostconfig.json 2, 镜像层: ...

  5. docker容器增加端口映射最佳实践(修改配置文件方式)

    前言: 在日常的docker运维中,经常遇到这样一个问题:已经配置好且运行的docker容器要根据业务需要增加端口映射到宿主机,如何简单有效的解决呢? 下面以mysql容器为例,详细说明操作步骤. 一 ...

  6. 【docker】修改docker容器配置,设置/修改端口映射

    目录 前言 方法1:将容器转换成镜像,用新的镜像创建新的容器 方法2:修改容器配置 方法3:创建新的容器 方法4:nginx stream代理 参考 前言 docker 创建容器时可指定端口映射.但容 ...

  7. Docker添加或者更改容器的端口映射

    QUESTION:Docker添加或者更改容器的端口映射? ANSWER: 初学Docker容器,按照教程的基本命令,拉取创建了几个容器,都是在一开始新建的时候 docker  run -p 指定对应 ...

  8. 解决Windows下无法对docker容器进行端口映射的问题

    解决Windows下无法对docker容器进行端口映射的问题 在安装了一个Windows下安装了docker,并尝试在其中运行Nginx服务,但映射完毕之后,在主机的浏览器中,打开localhost: ...

  9. 解决docker容器开启端口映射后,会自动在防火墙上打开端口的问题

    解决docker容器开启端口映射后,会自动在防火墙上打开端口的问题 参考文章: (1)解决docker容器开启端口映射后,会自动在防火墙上打开端口的问题 (2)https://www.cnblogs. ...

最新文章

  1. linux(6/17)--文件打包上传和下载
  2. 解决apache配置问题小结
  3. 北京科技大学转专业到计算机,北科大学生全可转专业
  4. ubuntu 图形化更换apt源
  5. 骂骂咧咧的 fastreport 数据隔行换色
  6. 使用PyTorch训练图像分类器
  7. 状态机-重叠序列检测
  8. 使用Gradle – 2019版从Travis可靠发布到Maven Central
  9. 产品认知:产品经理进入新公司第一件事该做什么?
  10. js中的substr和substring
  11. Android开发之在不同API上遇见的坑
  12. Es6 类class的关键 super、static、constructor、new.target
  13. 使用MisakaPatcher制作Galgame外挂汉化补丁
  14. 自动无刷电机和螺旋桨测试-如何测试无人机的动力系统?
  15. Mybatis学习之路——看这一篇文章,深刻学会Mybatis
  16. 给想进投行的学弟学妹的忠告和建议
  17. web前端之HTML5 入门(9):脚本、速查列表、URL、字符实体
  18. ECCV 2022 | 基于去遮挡和移除的3D交互双手姿态估计
  19. vue项目在ie浏览器下运行显示空白页面
  20. 英特尔45nm生产良率已达90%

热门文章

  1. 数组方法中会更改原数组,不会更改原数组(详细)
  2. MonkeyRunner_MonkeyRunner,MonkeyDevice,MonkeyImage可以调用的方法
  3. Android开发指南
  4. 《Python编程:从入门到实践》 练习 9-4 9-5
  5. Android 实现涂鸦笔效果
  6. 结对开发——求二维环形数组所有子矩阵最大和的问题
  7. 永磁同步电机的标么值系统
  8. oracle批量清除会话,oracle快速彻底杀掉session
  9. oracle批量清除会话,oracle快速彻底清理kill会话
  10. 电子邮件地址怎么写,国内电子邮件服务商有哪些,怎么申请注册邮件地址大全账号?