详解docker容器分配静态IP

作者:mosmith 时间:2023-06-25 06:18:59 

最近因为工作要求需要用学习使用docker,最后卡在了网络配置这一块。默认情况下启动容器的时候,docker容器使用的是bridge策略比如:


docker run -ti ubuntu:latest /bin/bash

等效于


docker run -ti --net=bridge ubuntu:latest /bin/bash

 bridge策略下,docker容器自动为我们分配了一个IP地址,并连接到docker0的网桥上。但这里有一个问题,这个IP地址并不是静态分配的,这对我们的对容器的实例的网络管理造成一了些困难。这里笔者并不想直接给出解决方案,因为那样子并没有什么卵用,理解原理,一步一步踏实走才是。

相信看过docker介绍的读者都知道docker是借助于cGroup和namespace技术来实现资源控制和隔离的。在开始之前读者需要去看一下linux上namespace的使用,本文并不想带入太多的其它不相关的主题。好了现在假设你已经了解namespace了,那你肯定想知道docker在网络上是怎么利用namespace来做手脚的。大致过程应该和下面的一致:(下面只是个人猜测,因为笔者并没有太多时间去研究它的源码)

1、创建一个Net Namespace  netns1。

2、创建一对veth,将peer加入到netns1,将别一端接入到网桥bridge0中。

3、为这两个veth分配IP。

4、用netns1启动容器中的程序比如/bin/bash。

可惜的是,docker run并没有一个选项让我们去指定所分配的IP,因为网络的确是个大难题。那就得自己动手丰衣足食了。

从上面我们知道,docker在网络这里用到了Net namespace,veth和网桥bridge。注意如果你意图使用ip netns list去查看docker在启动容器的时候使用了那个netns,你会失望地发现没有对应netns。其实并不是没有,而是docker为了掩盖一些细节,在做完初始化工作后,docker便将这个netns从/var/run/netns中删除了,我们完全可以用下面的方式让它打回原形:


ln -s /proc/${container's pid}/ns/net /var/run/netns/${the's name you want to display}
ip netns list

来源:http://www.cnblogs.com/mosmith/p/5372326.html

标签:docker,静态ip
0
投稿

猜你喜欢

  • Hishop参与长沙市电子商务协会筹建

    2009-10-27 10:59:00
  • Linux工具之Nethogs按进程监控网络带宽的安装部署

    2023-09-02 00:34:03
  • 超详细讲解Linux C++多线程同步的方式

    2023-11-03 16:57:51
  • 解决docker run时候启动两个占有不同端口的问题

    2023-11-18 20:34:45
  • IIS与PHP水火也相容:iis配置支持php教程

    2010-04-14 18:32:00
  • docker创建redis镜像的方法

    2023-10-29 04:30:43
  • 利用新浪微博进行网站推广

    2009-09-09 09:30:00
  • Suofanker:搜索引擎优化(SEO)内容为王

    2009-01-09 14:32:00
  • BT5不能使用apt-get命令的解决方案

    2023-06-12 10:37:06
  • “网络招聘时代”招聘网站为啥叫好不叫座呢

    2009-10-14 10:32:00
  • GoDaddy:如何压缩文件

    2010-04-26 13:00:00
  • 跟伪黑客道永别 加固你的网站从此不再被黑

    2009-01-30 02:14:00
  • VMware Workstation 12 Pro安装linux教程

    2022-04-18 12:49:50
  • 轻轻松松破解开别人ASP木马密码的方法

    2008-05-28 12:29:00
  • 清晰图解:用博客申请Google adsense

    2009-02-01 14:01:00
  • 知己知彼 分析竞争对手的网站来赢得胜利

    2008-11-28 09:48:00
  • 名博怎样练成 析月光博客成功的六个原因

    2008-12-01 15:59:00
  • robots.txt使用技巧

    2008-04-28 13:06:00
  • 李欣荣:从瑞星与360针锋对决中看事件营销

    2010-03-04 12:55:00
  • sersync实现数据实时同步的方法

    2023-07-30 03:06:15
  • asp之家 网站运营 m.aspxhome.com