docker run可以指定端口映射

docker run -d -p 80:80 --name name

但是容器一旦生成,就没有一个命令可以直接修改。通常间接的办法是,保存镜像,再创建一个新的容器,在创建时指定新的端口映射。

$ docker stop A
$ docker commit A imageA #将容器commit提交成为一个镜像
$ docker rm A #删除原镜像
$ docker run -d -p 80:80 --name A imageA #启动新镜像

但这样太麻烦了。现在有新方案来解决掉:
## 查看id 就是 容器的 hash_of_the_container 数值
docker inspect 容器id 第一个ID就是完整的容器id

修改容器的配置, 需要重启 DOCKER 服务, 否则会失败
停止容器, 停止服务 (systemctl stop docker 或 service docker stop)

## 修改hostconfig.json
vim /var/lib/docker/containers/[hash_of_the_container]/hostconfig.json
在 hostconfig.json 里有 "PortBindings":{} 这个配置项,可以改成 "PortBindings":{"80/tcp":[{"HostIp":"0.0.0.0","HostPort":"8080"}]}

例 hostconfig.json 已删除不相关配置, 只保留格式

{"PortBindings": {"5700/tcp": [{"HostIp": "","HostPort": "10086"}],"6700/tcp": [{"HostIp": "","HostPort": "6700"}],"9000/tcp": [{"HostIp": "","HostPort": "8080"}]}
}

## 修改config.v2.json
vim /var/lib/docker/containers/[hash_of_the_container]/config.v2.json
如果没有ExposedPorts 在 config.v2.json 里面添加一个配置项 "ExposedPorts":{"80/tcp":{}} , 将这个配置项添加到 "Tty": true, 前面,如果有就添加 "80/tcp":{} 端口即可。

例 config.v2.json 已删除不相关配置, 只保留格式

{"Config": {"ExposedPorts": {"5700/tcp": {},"6700/tcp": {},"9000/tcp": {}}}
} 

## 最后重启服务, 启动容器 (systemctl start docker/service docker start)
## 查看配置项已经修改成功
docker inspect 容器id

如果安装了防火墙 Iptables 还有个不需要修改即可端口映射的临时方法:

查看容器ID的IP地址:docker inspect 容器id | grep IPAddress

该命令获取了docker容器的在宿主机里的真实ip,然后使用宿主机的端口转发功能iptables

iptables -t nat -A DOCKER -p tcp --dport 宿主机端口 -j DNAT --to-destination 容器ip:容器端口

,注意这个方法并不是docker的命令,所以他扩展出的端口不在docker port命令列表里面。

查看所有容器内ip

docker inspect --format='{{.NetworkSettings.IPAddress}}' $(docker ps -a -q)

有时候,我们创建容器时忘了添加参数 --restart=always ,当 Docker 重启时,容器未能自动启动,可docker命令修改

docker container update --restart=always 容器名字

停止所有容器命令:

sudo docker stop $(docker ps -a | awk '{ print $1}' | tail -n +2)

启动所有容器命令:

sudo docker start $(docker ps -a | awk '{ print $1}' | tail -n +2)

追加docker已运行容器添加或修改端口映射方法相关推荐

  1. Mac虚拟机默认IP段修改 端口映射方法

    文章目录 1.VMware网络配置 创建Nat网络 修改Nat网络配置 虚拟机网络配置 虚拟机内配置IP 2.端口映射 1.VMware网络配置 创建Nat网络 通过如下步骤配置Nathan网络: V ...

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

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

  3. Docker容器修改端口映射

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

  4. docker 改host_Docker容器修改端口映射

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

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

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

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

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

  7. 传奇版本添加npc修改增加npc方法以及配置参数教程

    传奇版本添加npc修改增加npc方法以及配置参数教程,修改版本最基本的一种运用技术 1.D:\mirserver\Mir200\Envir\Merchant.txt 添加NPC参数与配置文件 2.D: ...

  8. 电脑端口号怎么查看?运行cmd命令查看电脑端口的方法图解

    我们在进行某些操作的时候需要限制或开放计算机端口,那么,如何查看电脑端口号呢?针对此问题,本文就为大家介绍运行cmd命令查看电脑端口的方法,有兴趣的朋友们可以了解下 对于电脑爱好者来说,电脑端口也是必 ...

  9. Weblogic二种修改端口的方法(转)

    转自:http://liuzidong.iteye.com/blog/690277 Weblogic二种修改端口的方法 环境:XP3,WebLogic92中文 一 修改配置文件 我的电脑的位置是: E ...

最新文章

  1. 【Python】用 Highcharts 绘制饼图,也很强大
  2. 数组洗牌算法-shuffle
  3. MyBatis 源码解读-执行SQL
  4. hihocoder1477 闰秒
  5. Linq to sql并发与事务
  6. 一位小创业者血泪史:培养过很多技术大佬,但我还在发传单(转)
  7. 苹果ipad怎么刷机_白苹果如何修复,为什么会出现白苹果
  8. SHT20温湿度传感器
  9. win10显示rpc服务器不可用,多种方法解决Win10专业版RPC服务器不可用的方法
  10. 【数字孪生】UE4虚幻引擎与前端Web页面的结合
  11. C语言strcpy()库函数的实现
  12. 记录一下家里双路由实现wifi漫游功能
  13. 1235813找规律第100个数_2013年全国中考数学规律探索试题汇编
  14. 镜子法则--看得人泪流满面!
  15. 爱上收纳的花艺师:热爱生活,就能被生活治愈
  16. C--利用switch()浅浅做一个成绩等级划分小程序
  17. android arm代码,为Android ARMV7编译OpenSSL 1.1.0
  18. 【微机接口】可编程串行异步通信芯片8250
  19. “我才是腾讯的第一任董事长”
  20. java 跳格子_HDU 1208 跳格子题(很经典,可以有很多变形)

热门文章

  1. 如何解决机器学习中数据不平衡问题(转)
  2. 网络工程师(2) 操作系统
  3. 第11章 享元模式(Flyweight Pattern)
  4. 实验十一 连接数据库实验(V2.0)
  5. C#中5中timer的比较
  6. ubuntu 7.04 Feisty Fawn 安装手记之 一:系统安装
  7. AndroidStudio安卓原生开发_UI高级_StateListDrawable状态选择器_按钮按下和抬起显示不同颜色---Android原生开发工作笔记124
  8. MyCat分布式数据库集群架构工作笔记0010---高可用_Mycat主--从复制配置下
  9. oracle在日本遇到的技术问题
  10. springcloud工作笔记094---springcloud项目后端验证_hibernate validator后端校验字段_介绍了解