为Docker设置固定IP及使用Weave管理工具的方法
发布时间:2023-10-09 10:41:42
这篇文章主要介绍了为Docker设置固定IP及使用weave管理工具的方法,Docker容器是当下虚拟机及集群部署方面最火热的技术,需要的朋友可以参考下为docker配置固定ip
首先,配置一个用于创建container interface的网桥,可以使用ovs,也可以使用Linux bridge,以Linux bridge为例:
复制代码代码如下:
br_name=docker
brctl addbr $br_name
ip addr add 192.168.33.2/24 dev $br_name
ip addr del 192.168.33.2/24 dev em1
ip link set $br_name up
brctl addif $br_name eth0
接着,可以启动容器了,注意用--net=none方式启动:
复制代码代码如下:
# start new container
hostname='docker.test.com'
cid=$(docker run -d -i -h $hostname --net=none -t centos)
pid=$(docker inspect -f '{{.State.Pid}}' $cid)
下面,为该容器配置网络namespace,并设置固定ip:
复制代码代码如下:
# set up netns
mkdir -p /var/run/netns
ln -s /proc/$pid/ns/net /var/run/netns/$pid
# set up bridge
ip link add q$pid type veth peer name r$pid
brctl addif $br_name q$pid
ip link set q$pid up
# set up docker interface
fixed_ip='192.168.33.3/24'
gateway='192.168.33.1'
ip link set r$pid netns $pid
ip netns exec $pid ip link set dev r$pid name eth0
ip netns exec $pid ip link set eth0 up
ip netns exec $pid ip addr add $fixed_ip dev eth0
ip netns exec $pid ip route add default via 192.168.33.1
这样,容器的网络就配置好了,如果容器内部开启了sshd服务,通过192.168.33.3就可以直接ssh连接到容器,非常方便。上面的步骤比较长,可以借助pipework来为容器设置固定ip(除了设置IP,还封装了配置网关、macvlan、vlan、dhcp等功能):
复制代码代码如下:
pipework docker0 be8365e3b2834 10.88.88.8/24
那么,当容器需要删除的时候,怎么清理网络呢,其实也很简单:
复制代码代码如下:
# stop and delete container
docker stop $cid
docker rm $cid
# delete docker's net namespace (also delete veth pair)
ip netns delete $pid
使用weave管理docker网络
weave简单使用
复制代码代码如下:
sudo wget -O /usr/local/bin/weave https://raw.githubusercontent.com/zettio/weave/master/weave
复制代码代码如下:
sudo chmod a+x /usr/local/bin/weave
启动weave路由器,这个路由器其实也是在docker中启动的:
复制代码代码如下:
[root@h-46mow360 ~]# weave launch
Unable to find image 'zettio/weave' locally
3b3a3db2c186fccb5203dcc269b3febbbbf126591a7ebd8117a8a5250683749f
复制代码代码如下:
[root@h-46mow360 ~]# brctl show
bridge name bridge id STP enabled interfaces
docker0 8000.56847afe9799 no veth801050a
weave 8000.7afc2a03325e no vethwepl2146
复制代码代码如下:
[root@h-46mow360 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3b3a3db2c186 zettio/weave:git-a34e214201cb "/home/weave/weaver About a minute ago Up About a minute 0.0.0.0:6783->6783/tcp, 0.0.0.0:6783->6783/udp weave
在两台物理机上分别启动一个容器:
复制代码代码如下:
c1=$(weave run 10.0.3.3/24 -t -i -v /sys/fs/cgroup:/sys/fs/cgroup:ro -v /tmp/$(mktemp -d):/run systemd:systemd /usr/lib/systemd/systemd)
c2=$(weave run 10.0.3.5/24 -t -i -v /sys/fs/cgroup:/sys/fs/cgroup:ro -v /tmp/$(mktemp -d):/run systemd:systemd /usr/lib/systemd/systemd)
这个时候,两个容器之间是不通的,需要在两台weave的路由器之间建立连接:( if there is a firewall between $HOST1 and $HOST2, you must open port 6783 for TCP and UDP)
复制代码代码如下:
weave connect 10.33.0.9
这样,两台容器之间通了:
复制代码代码如下:
# nsenter --mount --uts --ipc --net --pid --target $(docker inspect --format "{{.State.Pid}}" "$c2")
复制代码代码如下:
-bash-4.2# ping -c 3 10.0.3.3
PING 10.0.3.3 (10.0.3.3) 56(84) bytes of data.
64 bytes from 10.0.3.3: icmp_seq=1 ttl=64 time=2.34 ms
64 bytes from 10.0.3.3: icmp_seq=2 ttl=64 time=1.52 ms
64 bytes from 10.0.3.3: icmp_seq=3 ttl=64 time=1.13 ms
--- 10.0.3.3 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 1.131/1.667/2.345/0.505 ms
weave其他特性
•应用隔离:不同子网容器之间默认隔离的,即便它们位于同一台物理机上也相互不通;不同物理机之间的容器默认也是隔离的
•物理机之间容器互通:weave connect $OTHER_HOST
•动态添加网络:对于不是通过weave启动的容器,可以通过weave attach 10.0.1.1/24 $id来添加网络(detach删除网络)
•安全性:可以通过weave launch -password wEaVe设置一个密码用于weave peers之间加密通信
•与宿主机网络通信:weave expose 10.0.1.102/24,这个IP会配在weave网桥上
•查看weave路由状态:weave ps
•通过NAT实现外网访问docker容器


猜你喜欢
- 如何使用洋葱教学app看视频?洋葱数学是一款全平台的学习软件,专注于解决中学生数学学习难题。很多新用户不知道怎么在洋葱数学app中观看视频。
- 现如今我们在买电脑的时候,一般系统不是预装win7就是win8,那么我们如何知道预装Windows 7系统是否为正版呢?预装Windows
- 在我们使用CCleaner进行清理注册表的时候,每次都会弹出提示窗口,可是如果当你不喜欢弹出该窗口的时候,该怎么办呢?其实是可以设置的,下面
- 欧元(Euro)是欧盟中19个国家的货币。欧元的19会员国是德国、法国、意大利、荷兰、比利时、卢森堡、爱尔兰、西班牙、葡萄牙、奥地利、芬兰、
- C盘不能扩展什么原因?c盘无法扩展卷是灰色的怎么办?一些朋友觉得电脑的C盘空间有点小,很容易满,准备在磁盘管理中扩大C盘容量,但是右键点击C
- WPS是常用的办公软件,有时候我们需要打印wps的内容,那么怎么打印部分内容呢,赶紧看看吧大家都知道,WPS是常用的办公软件,有时候我们需要
- 戴尔灵越 16 Plus是一款商用办公笔记本电脑,这款电脑搭载了英特尔第12代酷睿i7处理器以及性能级核芯显卡,能够满足用户们日常办公使用需
- Gifski Mac版是Mac平台上的一款GIF制作应用。可以帮助用户将所需要录制的视频转换成高质量的GIF格式的图片。支持MacOS支持的
- Win10电脑桌面的快捷方式图标怎么去掉小箭头?许多小伙伴在使用电脑的时候,经常会把一些常用的软件放到电脑桌面中。而眼睛比较尖的同学们发现自
- 用户使用wps软件可以编辑不同类型的文件,这也是用户喜欢使用这款办公软件的主要原因之一,当用户在wps软件中编辑表格文件时,可以使用自己需要
- 我们看一下,如何把Word 里的公式放到 PowerPoint 里:1.和往常一样在 Word 里把公式选中,复制一下。2.然后我们进入 P
- 很多时候我们自己操作不了的步骤都是需要让其他人来连接自己的电脑进行远程控制辅助用户进行相关操作,但是最重要的一步的就是开启远程访问的操作方法
- .选中需要快速填充序列号的单元格,点击工具栏的“样式”然后选择“新建样式”。 2.接着点击左下角的“格式”→“编号
- 在用户使用win10系统中,每次开机都有一个引导的过程,如果用户开机引导项过多的话,会让电脑开机速度变慢,但是一般的用户又不清楚怎么把多余的
- 键盘锁住了Fn键和什么键可以解除锁定?许多用户在使用电脑的过程中不知道按到了什么键导致自己的电脑无法使用,那么遇到了这样的情况怎么办呢?下面
- 对于手机版本的wps,大家可能还不太熟悉,还不知道如何使用手机wps来制作表格,下面就让小编告诉你如何使用手机wps制作表格 的方法。使用手
- 图片密码是Windows 8相较于Windows 7新增的一种登录方式,快速、流畅而且支持用户自定义。图片密码是Windows 8相较于Wi
- 搜狗输入法一直都是很多打字爱好用户的最佳选择,人气高功能强大速度快获得了十分高的人气,很多小伙伴再用的时候可能会遇到搜狗突然不见了,那么该怎
- 需要编辑文档时可以用自带的文本或写字板代替。如果是使用写字板编辑文档,如何将它保存为TXT格式呢?下面有个方法,需要的朋友可以尝试操作下对于
- 现代人尤其是中年一代人的压力实在是太大——不仅有着紧张的工作和复杂的人际关系,更需要解决很多的现实问题:养老问题、教育子女问题、房价上涨问题