docker给已存在的容器添加或修改端口映射
简述:
这几天研究了一下docker, 发现建立完一个容器后不能增加端口映射了,因为 docker run -p
有 -p
参数,但是 docker start
没有 -p
参数,让我很苦恼,无奈谷歌了一番,终于让我找到了解决办法
解决办法:
一种是将原来的容器提交成镜像,然后利用新的建立的镜像重新建立一个带有端口映射的容器,不推荐这种办法
另一种就是改容器配置文件(也是我推荐的解决办法):配置文件在 /var/lib/docker/containers/[hash_of_the_container]/hostconfig.json
还有 config.v2.json
这俩文件
hash_of_the_container 可以通过 docker inspect 容器名字
来查看
id 就是 容器的 hash 数值,在 hostconfig.json
里有 "PortBindings":{}
这个配置项,可以改成 "PortBindings":{"80/tcp":[{"HostIp":"","HostPort":"8080"}]}
这里 80 是容器端口, 8080 是本地端口, 然后在 config.v2.json
里面添加一个配置项 "ExposedPorts":{"80/tcp":{}} ,
将这个配置项添加到 "Tty": true,
前面,我不知道添加到别的地方会不会有影响,因为经过对比正常的端口映射配置项是在这个位置,这个就是将容器内部端口暴露出来,如果不加这一句端口映射不会成功的,最后重启 docker的守护进程 service docker restart
这里有个问题就是重启后 用docker ps -a
是看不到端口映射的,但实际已经映射好了,我正常在新建一个带有端口映射容器的时候,重启 docker的守护进程,端口映射也不会显示出来,但是通过docker inspect 容器名
可以看到配置项已经修改成功了。
docker给已存在的容器添加或修改端口映射的更多相关文章
- docker已运行容器添加或修改端口映射
# 不推荐方法:将原来的容器提交成镜像,然后利用新的建立的镜像重新建立一个带有端口映射的容器# 推荐方法:## 查看id 就是 容器的 hash_of_the_container 数值 docker ...
- 对已有的docker容器增加新的端口映射
一般在运行容器时,我们都会通过参数 -p(使用大写的-P参数则会随机选择宿主机的一个端口进行映射)来指定宿主机和容器端口的映射,例如 docker run -it -d --name [contain ...
- Docker给运行中的容器添加映射端口
方法一: 1.获得容器IP将container_name 换成实际环境中的容器名docker inspect `container_name` | grep IPAddress 2. iptables ...
- Docker 给运行中的容器添加映射端口
方法1 1.获得容器IP 将container_name 换成实际环境中的容器名 docker inspect `container_name` | grep IPAddress 2. iptable ...
- docker动态修改端口映射(考虑生产环境)
今天需要修改一个容器A的外部映射的端口,在宿主机上跑着许多容器,所以在解决这个问题的时候需要考虑两个硬性条件: 1.宿主机上docker的service服务本身不能重启,影响其他线上容器. 2.该容器 ...
- docker容器添加对外映射端口
一般在运行容器时,我们都会通过参数 -p(使用大写的-P参数则会随机选择宿主机的一个端口进行映射)来指定宿主机和容器端口的映射,例如 docker run -it -d --name [contain ...
- docker容器启动后添加端口映射
DOCKER 给运行中的容器添加映射端口 方法1 1.获得容器IP 将container_name 换成实际环境中的容器名 docker inspect `container_name` | grep ...
- docker 常用命令和常用容器启动
docker:systemctl start docker # docker 启动systemctl stop docker # docker 停止systemctl restart docker # ...
- docker容器的端口映射
1.创建一个Nginx 容器,先不映射端口 [root@localhost ~]# docker run --name my_nginx -d nginx 7be3673a4c0f8f7ffe79a7 ...
- docker端口映射和容器互相访问
端口映射 容器运行时如果没有指定端口,与外界是无法通信的,比如当前我们的有一台MySQL的docker container,当前容器正在运行mysql并提供3306端口 # docker ps CON ...
随机推荐
- 题解 P2471 【[SCOI2007]降雨量】
原题传送门 前置芝士 离散化 ST表和RMQ问题 二分 正文 首先我们来分析一下题意. 题目会给出两个大小为 \(n\) 的数组,\(y\) 和 \(r\) ,其中 \(y_i\) 表示第 \(i\) ...
- 关于在PyCharm中使用虚拟环境
Python虚拟环境的概念对于管理项目用到的第三方包真是好处多多,所以也想在PyCharm使用虚拟环境. 在这个过程中,遇到很多问题: 第一是使用Python创建虚拟环境,然后在PyCharm创建项目 ...
- 13. 第十二篇 二进制安装kubelet
文章转载自:https://mp.weixin.qq.com/s?__biz=MzI1MDgwNzQ1MQ==&mid=2247483842&idx=1&sn=1ef1cb06 ...
- 第五章:Admin管理后台 - 2:自定义Admin actions
通常情况下,admin的工作模式是"选中目标,然后修改目标",但在同时修改大量目标的时候,这种模式就变得重复.繁琐. 为此,admin提供了自定义功能函数actions的手段,可以 ...
- MySQL 窗口函数
1. 窗口函数概念和语法 窗口函数对一组查询行执行类似聚合的操作.然而,聚合操作将查询行分组到单个结果行,而窗口函数为每个查询行产生一个结果: 函数求值发生的行称为当前行 与发生函数求值的当前行相关的 ...
- 自主创建mybtis管理应用,用以横向管理数据源
这个是我写的第一个随手小记,一晃眼做后端开发也有7年多了,现在也准备将一些杂七杂八的资料整理下.也算是回顾这7年中做的比较有意思的东西了. 这个需求是我17年做的,当时的应用场景是仓储库比较多,随时会 ...
- 【Spring boot】整合tomcat底层原理
本文结论 源码基于spring boot2.6.6 项目的pom.xml中存在spring-boot-starter-web的时候,在项目启动时候就会自动启动一个Tomcat. 自动配置类Servle ...
- Python与Windows桌面
Python更换windows桌面 目录 Python更换windows桌面 前言 准备工作 代码 效果展示 Tips-如何更有仪式感 前言 每天下班,有时候会留下一些事情需要明天更进 为了防止忘记, ...
- Linux中CentOS 7版本安装JDK、Tomcat、MySQL、lezsz、maven软件详解
软件安装 在Linux系统中,安装软件的方式主要有四种,这四种安装方式的特点如下: 安装方式 特点 二进制发布包安装 软件已经针对具体平台编译打包发布,只要解压,修改配置即可 rpm安装 软件已经按照 ...
- Vue学习之---浏览器本地存储(8/17)
博客园(纯干货):https://www.cnblogs.com/zheng-yuzhu/ 文章目录 1.基础知识 2.代码实例(localStorage.html) 3.测试效果 4.代码实例(se ...