系列文章目录
提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
例如:第一章 Python 机器学习入门之pandas的使用
提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
去了新公司线上应用部署环境由传统服务器直接部署变为使用docker,并且感觉以前部署应用方式不够优雅,面对微服务体系资源利用率不够高,所以学习docker。
所有百度云盘提取码都为1111
一、网络认知
二、docker中网卡
1.linux中资源分割
docker其实就是一个小型的linux系统在运行,它有着自己的cpu、内存、网络等资源,将它和centos\7进行分隔开的。实现的基础是namespace,在其中设置自己的cpu、内存、网络等资源。系统要通信需要网卡,已经有成熟的技术可以成对的创建网卡。
这是默认空间的全部网卡信息,有本地、与win关联的、与docker关联。添加两个namespace空间s1、s2。
先通过namespace来实现网卡的资源分割,类比能看出dokcer的原理。
上边是给网卡绑定ip操作,加入两个命名空间能够互相ping通代表放入应用或者tomcat都能使用这也是docker的基础。
这个代表能够互相使用了,想要和外界通信那就ns1和centos/7连接ip网段为192.168.111.1、192.168.111.2同时ns2和centos/7连接ip网段为192.168.111.3、192.168.111.4。docker就是这样做的。
总结
ip netns add ns1 创建一个network namespace
ip netns exec ns1 ip a 查看该namespace下网卡的情况
ip netns exec ns1 ifup lo
or
ip netns exec ns1 ip link set lo up 启动ns1上的lo网卡
ip link add veth-ns1 type veth peer name veth-ns2 创建一对link,也就是接下来要通过veth pair连接的link
ip link set veth-ns1 netns ns1 将veth-ns1加入ns1中
ip netns exec ns1 ip addr add 192.168.0.11/24 dev veth-ns1 绑定ip
ip netns exec ns1 ip link set veth-ns1 up 启动veth-ns1
ip netns exec ns1 ip a 查看ip
ip netns exec ns1 ping 192.168.0.12 测试