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设置会自动消失,需要重新设置。
相关推荐
工具,给docker容器分配ip使用
我们在使用docker run创建Docker容器...默认选择bridge的情况下,容器启动后会通过DHCP获取一个地址,这可能不是我们想要的,本文介绍在centos7 docker环境下使用pipework脚本对容器分配固定IP。 # brctl show # docke
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与宿主机同网段通信的问题,写此文章记录一下整个过程。 例如 宿主机A 和宿主机B是网络联通关系,在宿主机A上面创建了多个容器组成集群,但是我希望...2、 使用pipework为docker容器配置独立IP 安装p
这样做一个不方便的地方在于容器内部的ip不是固定的,想要连接容器时只能通过映射到宿主机的端口,因而有很多项目使用overlay来为docker提供网络的配置,比如Pipework、Flannel、Kubernetes、Weave、opencontrail等...
之前使用pipework 分配静态ip是暂时的,重启之后就会失效,并且使用pipework绑定的ip 物理机,虚拟机,docker容器的ip都在同一网段,这在生产环境是很困难的,下面使用docker自带的network实现固定ip分配,并且重启不会...
在通过pipework 给docker容器分配IP的时候, 系统报出以下错误: Object “netns” is unknown, try “ip help”. 该错误是由于系统版本暂时不支持namespaces, 可通过更新内核或者iproute的方法获取对namespaces的支持...
docker-pipework:Docker镜像,使用管道和openvswitch管理容器网络
本文首先介绍了Docker自身的4种网络工作方式,然后通过3个样例——将Docker容器配置到本地网络环境中、单主机Docker容器的VLAN划分、多主机Docker容器的VLAN划分,演示了如何使用pipework帮助我们进行复杂的网络设置...
NULL 博文链接:https://lingzhi007.iteye.com/blog/2334992
Docker是目前非常火的开源轻量级的引擎技术,能在linux系统快速创建一个lxc容器来部署应用。目前docker项目还在快速迭代,用go语言...搭建过程中,最主要是步骤是用pipework固定容器的ip,用dnsmasq模拟修改host文件。
目前实现Docker网络的开源方案有Weave、Kubernetes、Flannel、Pipework以及SocketPlane等,其中Weave被评价为目前最靠谱的,那么这里就对Weave的基本原理及使用方法做个总结。 简介 Weave是由Zett.io公司开发的,它...
1. Docker的4种网络模式 1. 在主机上创建一对虚拟网卡veth pair设备 2. Docker将veth pair设备的一端放在新创建的容器中,并命
自动配置网络 ,配合docker使用的一个非常实用的shell脚本,该脚本实现ip和宿主主机在一个网段下
pipework的思路这篇讲的比较好pipework是一个单机的工具,组合了brctl等工具,你可以认为pipework解决的是宿主机Pipework、Weav
pipework-master.zip
duang是一个以业务为单位的,分发器+docker集群的方案。前端采用confd+haproxy。 ##用法 把代码拉到本地后,在 conf 目录下创建 duang.conf 文件,内容如下 db_addr = tcp(你MySQL地址[:端口]) db_user = MySQL...