已经创建 且运行一段时间的docker容器 添加新的映射端口

如题,已经创建的容器,并且产生业务数据,不可能再通过docker run的形式映射新的端口,此种情况下,可分两种情况添加新端口:

第一种情况:现有容器中的服务不可以停止,且本机开启了iptables

  这种情况下,可以直接用添加防火墙规则的形式,在iptables中加入端口映射   示例映射容器服务中的443端口

HOST> iptables -t nat -A DOCKER -p tcp --dport 443 -j DNAT --to-destination 172.17.0.2:443

  HOST> iptables -t nat -A POSTROUTING -j MASQUERADE -p tcp --source 172.17.0.2 --destination 172.17.0.2 --dport https

  HOST> iptables -A DOCKER -j ACCEPT -p tcp --destination 172.17.0.2 --dport https

如果没有开启iptables,很多环境下 默认都是关闭的,那么可以尝试haproxy tcp mode进行端口转发,此方法未实际验证,且需要额外服务。

第二中情况:容器可以停止,docker也可以停止

此种情况,通过修改docker配置文件的方式,添加新的端口,重启完之后,不影响现有数据和服务。

切记:操作之前,先停止容器中的服务,要不然直接关闭容器后再启动服务会产生很多问题。

1.关闭容器  docker stop containerid

2.关闭 docker systemctl stop docker

3.修改 /var/lib/docker/containers/[hash_of_the_container]/hostconfig.json 和  config.v2.json 中的端口映射配置,添加新端口。

4.重启 docker  systemctl restart docker

5.启动容器  docker start containerid

原文地址:https://www.cnblogs.com/telegram/p/10837634.html

时间: 2024-08-26 21:29:02

已经创建 且运行一段时间的docker容器 添加新的映射端口的相关文章

由“Qt程序运行一段时间后崩溃”引发的“opancv库中Mat::clone()函数”在多线程下的注意事项

问题描述 过程1:从相机中获取图像数据,然后存放到一个cv::Mat对象中(该对象是全局变量,用来交换数据).由相机的回调函数自动调用. 过程2:将上述的全局变量拷贝并转换qimg,放到Qt界面上显示.该过程由定时器调用. 然后程序会在运行一段时间后,出现"程序异常结束.The process was ended forcefully.".运行的时间长短不一. 问题解决与分析 由于QtCreator的编译器选的是MSVC,而调试器选只有GDB(查了下好像需要CDB).所以无法debug

ssbc 手撕包菜运行一段时间就停止的原因

原文: ssbc 手撕包菜运行一段时间就停止的原因 ssbc 运行一段时间后,大概半个小时,就莫名奇妙停止不爬了,通过错误提示可以看出,其实是ssbc与mysql(maridb)断开连接了,导致程序异常,当然就插入不了数据了. 所以解决办法很简单,有多种解决办法: 一种是写个脚本,定时重启爬虫.这种方法比较笨,效率低下,因为不知道什么时候爬虫停止了. 另一种是修改下代码,当mysql断开连接时,再次重连mysql就可以拉. 附上方法二修改后的爬虫源码(simdht_worker.py) 附件下载

Office web apps 服务器运行一段时间之后CPU就是达到100%

office web apps服务器部署两台,采用服务器场的方式实现高可用,主要为Lync server 2013 提供共享PPT: exchange 2013.SharePoint 2013提供在线预览word.PPT.excel. 原因分析(Cause) Office web apps服务器重启之后CPU正常,但是运行一段时间之后CPU会达到100%. Office web apps服务器的主要作用就是使用IIS为Lync 提供共享PPT,为SharePoint和exchange服务器提供在

Spring Boot定时任务运行一段时间后自动关闭的解决办法

用Spring Boot默认支持的 Scheduler来运行定时任务,有时在服务器运行一段时间后会自动关闭.原因:Schedule默认是单线程运行定时任务的,即使是多个不同的定时任务,默认也是单线程运行.当线程挂掉时,定时任务也随之终止. 解决方法: 一.改为多线程执行定时任务: 加一个配置类,实现SchedulingConfigurer接口,重写configureTasks方法即可: import org.springframework.context.annotation.Configura

mysql5.6运行一段时间之后网站页面出现乱码解决办法

mysql5.6运行一段时间之后网站页面出现乱码,怎么都打不开,经过排查之后,知道是数据库默认字符集出问题了,在此分享给大家经验. 在mysql5.6配置文件:my.ini 找到: 添加如下内容: [client] # Client characterset and Connection characterset default-character-set=utf8 [mysqld] # Server characterset and Database characterset characte

Activity后台运行一段时间回来crash问题的分析与解决

最近做项目的时候碰到一个棘手的问题,花了不少时间才找到原因并解决.特此记录这个被我踩过的坑,希望其他朋友遇到此问题不要调到这坑里去了. 问题描述: 1.背景:我的app中某个界面的Activity是继承FragmentActivity,因为此界面包含两个Fragment.这里我称为FragmentA和FragmentB吧.在Activity中有个刷新按钮,用来刷新ViewPager当前Fragment内容的刷新.点击Activity的刷新按钮之后,刷新按钮需要有简单的旋转动画,等Fragment

IIS服务器运行一段时间后卡死,且无法打开网站(IIS管理无响应,必须重启电脑)

问题描述: 公司希望使用IIS配合网站显示一些订单跟进的情况并展示出来,所以我们在一台演示的Win7 Pro电脑上安装了IIS,但使用了一段时间后发现每过几天页面就无法正常访问了,而且打开IIS管理器也是一直无响应,根本无法进行IIS的重启.只有重启电脑才能解决问题. 问题参考: http://support.microsoft.com/kb/934878/zh-cn 原因:服务器上的可用非分页缓冲的池内存小于 20 兆字节 (MB) 时,会出现此问题.可用非分页缓冲的池内存小于 20 兆字节

水晶报表服务器运行一段时间提示错误:已达到系统管理员配置的最大报表处理作业数限制。

大家可能在第一次使用水晶报表时会因为忘记释放资源导致,用上一段时间遇到水晶报表加载错误:已达到系统管理员配置的最大报表处理作业数限制. 一般情况以下两种方法即可解决问题. 1.直接修改注册表 新建一个.REG文件新建一下注册表值 [HKEY_LOCAL_MACHINE\SOFTWARE\Crystal Decisions\12.0\Report Application Server\InProcServer]"PrintJobLimit"="1000" [HKEY_

Linux服务器运行一段时间,出现CPU占用率达到100%卡死

没事整了一个1核2G的便宜服务器,虽说便宜吧,但是搞个博客网站啥的也还是够用了:但是呢,最近服务器过几天就会出先CPU占用率达到100%:系统完全卡死,项目请求一个都访问不了,或者就是超级长时间才能得到应答.一开始还没在意,重启一下服务器就好了,可经常出现,重启也难受啊!后来百度好久才知道可能是被黑了,所以就到处找问题,啥子定时任务,脚本,一个个的看,可以说,把服务器文件结构又熟悉了一遍,终于是找到了一堆垃圾文件,确定了是真的被黑了.其实我还是搞不懂,我这么小个服务器咋也被盯上了.最后通过下面这