资讯专栏INFORMATION COLUMN

Docker容器动态添加端口

shleyZ / 1140人阅读

摘要:参考怎么给运行中的容器添加新的端口修改容器端口映射的方法规则查看,添加,删除和修改方法修改端口映射的端口映射并不是在技术中实现的,而是通过宿主机的来实现。通过控制网桥来做端口映射,类似路由器中设置路由端口映射。


突然遇到一个问题怎么给一个已经在运行的docker容器添加端口,找了找资料,记个笔记。

参考:

怎么给运行中的docker容器添加新的端口

修改docker容器端口映射的方法

iptable规则查看,添加,删除和修改

方法1 修改iptables端口映射
docker的端口映射并不是在docker技术中实现的,而是通过宿主机的iptables来实现。通过控制网桥来做端口映射,类似路由器中设置路由端口映射。

比如我们有一个容器的80端口映射到主机的8080端口,先查看iptables到底设置了什么规则:

sudo iptables -t nat -vnL

在结果中有一条:

Chain DOCKER
target     prot opt source               destination
RETURN     all  --  0.0.0.0/0            0.0.0.0/0
DNAT       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:8080 to:172.17.0.3:80

我们可以看到docker创建了一个名为DOKCER的自定义的链条Chain。而我开放80端口的容器的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

方法2 修改容器配置文件

容器的配置文件/var/lib/docker/containers/[containerId]目录下,hostconfig.jsonconfig.v2.json 修改好之后,重启容器服务。

方法3 把运行中的容器生成新的镜像,然后运行新的镜像

    提交一个运行中的容器为镜像

docker commit containerid heropoo/example

2.运行heropoo/example镜像并添加8080映射容器80端口

docker run -d -p 8000:80  heropoo/example /bin/sh

试试吧~

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/7191.html

相关文章

  • 服务发现与 Docker

    摘要:为了动态配置管理,当我们启动和停止一个新容器的时候,我们想后端能自动注册进负载均衡器。这是基本需求,叫做服务发现我们想负载均衡器能自动发现提供服务的容器。一个团队开发的简单的服务发现的工具。服务发现目标是减少或消除组件之间的手动的连接。 注:该文由 adetante 编写,原文地址为 Service discovery with Docker 这篇博客的第一篇文章,我将写一篇...

    DataPipeline 评论0 收藏0
  • Docker入门学习

    摘要:一核心组件客户端和服务端镜像容器二关键概念以镜像为基础,在镜像的基础上创建运行容器,可以简单的理解为容器是镜像运行时的表现。 一、docker核心组件 docker客户端和服务端 docker镜像 registry docker容器 二、关键概念 docker以镜像为基础,在镜像的基础上创建、运行容器,可以简单的理解为容器是镜像运行时的表现。 三、docker基本命令 容器相关 1、d...

    Carl 评论0 收藏0
  • docker - 使用 Ansible 管理 docker 容器

    摘要:原文是的官方文档中大纲在的版本及以上支持。管理容器的生命周期。在中添加设置容器的主机名设置使用的镜像把容器与其他容器连接起来比如。 注:作者是 Cove Schneider,Joshua Conner, Pavel Antonov。原文是 Ansible 的官方文档中 docker - manage docker containers 大纲 在 Ansible 的 1.4 ...

    cfanr 评论0 收藏0
  • 使用Docker过程中注意事项

    摘要:本文以技术栈为例,列举并解释了一些面向进行应用程序开发和系统搭建中所需要注意的问题和技巧,以及平台在管理和帮助企业应用向转化中的作用。我们总结基于的组件的使用注意事项如下的外部存储挂载被开启无论是还是模式,都会需要在硬盘上进行存储。 本文以技术栈Redis为例,列举并解释了一些面向Docker进行应用程序开发和系统搭建中所需要注意的问题和技巧,以及Caicloud平台在Docker管理...

    zzbo 评论0 收藏0
  • 如何使用DockerDocker-Compose和Rancher搭建部署Pipeline(四)

    摘要:注册器监视每个守护进程的事件,并在生命周期事件期间自动更新。条件可以包括亲和规则否定至软强制意味着尽可能地避免。当使用通用标记如或部署服务时,可能会出现意外的后果。月日,北京海航万豪酒店,容器技术大会即将举行。 在这篇文章中,我们将讨论如何用Rancher实现consul的服务发现。 如果你还没有准备好,推荐你阅读本系列中先前的文章:第一篇:CI /CD和Docker入门第二篇:使部署...

    13651657101 评论0 收藏0

发表评论

0条评论

shleyZ

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<