`
haiouc
  • 浏览: 115377 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

使用pipework为配置Docker容器固定ip

阅读更多

docker的四种网络模式

    1. host模式
        docker run 使用 --net=host指定, docker使用的网络实际上和宿主机一样

    2. container模式
        使用 --net=container:container_id/container_name, 多个容器使用共同的网络,看到的ip是一样的。    
    3. none 模式
        使用 --net=none指定,这种模式下,不会配置任何网络。

    4. bridge模式
        使用 --net=bridge指定,默认模式,此模式会为每个容器分配一个独立的network namespace
        默认选择bridge的情况下,容器启动后会通过DHCP获取一个地址
================================================================


首先讲一下docker的网络模式:

我们使用docker run创建容器时,可以使用--net选项指定容器的网络模式,docker一共有4中网络模式:

   

1:bridge模式,--net=bridge(默认)。
这是dokcer网络的默认设置。安装完docker,系统会自动添加一个供docker使用的网桥docker0,我们创建一个新的容器时,容器通过DHCP获取一个与docker0同网段的IP地址。并默认连接到docker0网桥,以此实现容器与宿主机的网络互通。如下:
docker inspect --format={{.NetworkSettings.IPAddress}} test
 

 

2:host模式,--net=host。
  这个模式下创建出来的容器,将不拥有自己独立的Network Namespace,即没有独立的网络环境。它使用宿主机的ip和端口。

 

3:container模式,--net=container:NAME_or_ID。
这个模式就是指定一个已有的容器,共享该容器的IP和端口。除了网络方面两个容器共享,其他的如文件系统,进程等还是隔离开的。

 

4:none模式,--net=none。
这个模式下,dokcer不为容器进行任何网络配置。需要我们自己为容器添加网卡,配置IP。


因此,若想使用pipework配置docker容器的ip地址,必须要在none模式下才可以。

pipework安装:  https://github.com/jpetazzo/pipework/archive/master.tar.gz

# wget https://github.com/jpetazzo/pipework/archive/master.zip
# unzip pipework-master.zip
# cp pipework-master/pipework  /usr/local/bin/
# chmod +x /usr/local/bin/pipework
创建none模式的容器,为其分配IP。
#docker run -idt --name test --net=none resin
#pipework docker0 test 172.17.0.100/24@172.17.0.1
#docker-enter test
#ip a   (centos7)    or   ifconfig
 

 
以上操作给新建的test容器分配了一个172.17.0.100的IP地址。


Pipework有个缺陷,容器重启后IP设置会自动消失,需要重新设置。

 

 

  • 大小: 20.5 KB
  • 大小: 40.5 KB
分享到:
评论

相关推荐

    pipework-master给docker容器分配ip

    工具,给docker容器分配ip使用

    Docker容器固定IP分配详解

    我们在使用docker run创建Docker容器...默认选择bridge的情况下,容器启动后会通过DHCP获取一个地址,这可能不是我们想要的,本文介绍在centos7 docker环境下使用pipework脚本对容器分配固定IP。 # brctl show # docke

    pipework-master 容器中可以固定IP地址的神器

    2:把下载的zip包上传到宿主机服务器上,解压,改名字 ...5:给容器设置固定ip pipework br0 hadoop0 192.168.2.10/24 pipework br0 hadoop1 192.168.2.11/24 pipework br0 hadoop2 192.168.2.12/24

    Docker实现同Ip网段联通的实现

    最近解决docker与宿主机同网段通信的问题,写此文章记录一下整个过程。 例如 宿主机A 和宿主机B是网络联通关系,在宿主机A上面创建了多个容器组成集群,但是我希望...2、 使用pipework为docker容器配置独立IP 安装p

    Docker 配置固定IP及桥接的实现方法

    这样做一个不方便的地方在于容器内部的ip不是固定的,想要连接容器时只能通过映射到宿主机的端口,因而有很多项目使用overlay来为docker提供网络的配置,比如Pipework、Flannel、Kubernetes、Weave、opencontrail等...

    Docker绑定固定IP/跨主机容器互访操作

    之前使用pipework 分配静态ip是暂时的,重启之后就会失效,并且使用pipework绑定的ip 物理机,虚拟机,docker容器的ip都在同一网段,这在生产环境是很困难的,下面使用docker自带的network实现固定ip分配,并且重启不会...

    pipework docker无法使用ip netns命令解决办法

    在通过pipework 给docker容器分配IP的时候, 系统报出以下错误: Object “netns” is unknown, try “ip help”. 该错误是由于系统版本暂时不支持namespaces, 可通过更新内核或者iproute的方法获取对namespaces的支持...

    docker-pipework:Docker镜像,使用管道和openvswitch管理容器网络

    docker-pipework:Docker镜像,使用管道和openvswitch管理容器网络

    Docker网络详解及pipework源码解读与实践

    本文首先介绍了Docker自身的4种网络工作方式,然后通过3个样例——将Docker容器配置到本地网络环境中、单主机Docker容器的VLAN划分、多主机Docker容器的VLAN划分,演示了如何使用pipework帮助我们进行复杂的网络设置...

    docker 用 pipework config ip 建测试集群

    NULL 博文链接:https://lingzhi007.iteye.com/blog/2334992

    hadoop on docker

    Docker是目前非常火的开源轻量级的引擎技术,能在linux系统快速创建一个lxc容器来部署应用。目前docker项目还在快速迭代,用go语言...搭建过程中,最主要是步骤是用pipework固定容器的ip,用dnsmasq模拟修改host文件。

    Docker学习笔记之Weave实现跨主机容器互联

    目前实现Docker网络的开源方案有Weave、Kubernetes、Flannel、Pipework以及SocketPlane等,其中Weave被评价为目前最靠谱的,那么这里就对Weave的基本原理及使用方法做个总结。 简介 Weave是由Zett.io公司开发的,它...

    Docker网络详解及pipework源码解读与实践1

    1. Docker的4种网络模式 1. 在主机上创建一对虚拟网卡veth pair设备 2. Docker将veth pair设备的一端放在新创建的容器中,并命

    auto_pipework_new_jf_nginx_v2.sh

    自动配置网络 ,配合docker使用的一个非常实用的shell脚本,该脚本实现ip和宿主主机在一个网段下

    Pipework、Weave、Flannel各自的优势和区别 - DockOne1

    pipework的思路这篇讲的比较好pipework是一个单机的工具,组合了brctl等工具,你可以认为pipework解决的是宿主机Pipework、Weav

    pipework-master.zip

    pipework-master.zip

    duang:与dockerd haproxy etcd confd集成的docker framwork

    duang是一个以业务为单位的,分发器+docker集群的方案。前端采用confd+haproxy。 ##用法 把代码拉到本地后,在 conf 目录下创建 duang.conf 文件,内容如下 db_addr = tcp(你MySQL地址[:端口]) db_user = MySQL...

Global site tag (gtag.js) - Google Analytics