Network网络篇
网络篇
我们在进行ifconfig
时会出现:
- ens33:linux宿主机地址
- lo:local 本地回环链络
virbr0: 虚拟网桥
- 安装Centos过程中,如果有选择相关虚拟化的服务安装系统后,启动网卡时会发现有个一以网桥连接的私网地址的virbr0网卡,还有一个固定的默认IP地址 192.168.122.1 是做虚拟机网桥使用的,其作用是为连接其上的虚拟机网卡提供NAT访问外网的功能。
docker启动以后,会出现一个docker0的虚拟网桥,他可以使容器和容器之间,容器与宿主机之间相互访问
启动Docker以后会默认以下创建三大网络模式。
bridge
- 主要用这个
- 为每一个容器分配 设置IP等 并将容器连接到每一个docker0
- 虚拟网桥 默认为该模式
host
- 勉强会用这个
- 容器将不会虚拟出自己的网卡 配置自己的IP等 而是使用宿主机的IP和端口
none
- 一般不会用
- 容器有独立的Network namespace 但并没有对其进行任何网络设置 如分配veth pair和网桥连接 IP等
container
- 新创建的容器不会创建自己的网卡和配置自己的IP 而是和一个指定的容器共享IP 端口范围等
网络有什么用?
用于实现docker网络管理和容器之间的调用规划
能干嘛?
容器间的互联和通信以及端口映射
容器ip变动时候可以通过服务名直接网络通信而不受影响
docker0是什么?
Docker服务默认会创建一个docker0网桥(其上有一个docker0内部接口),
该桥接网络的名称为docker0,他在内核层连通了其他的物理或虚拟网卡,
这就将所有容器和本地组主机都放到同一个物理网络。docker默认制定了docker0接口的IP地址和子网掩码,
让主机和容器直接可以通过网桥相互通信
自定义网络
由于ip是会变化的,所以要通过服务名调用
after
- 新建自定义网络
- docker network create 网络名称
- docker ls
- 把容器一和容器二都加入自定义网络
- docker run -d -p 宿主机端口1:容器端口 --network 网络名称1 --name 网络名称1 容器名
- docker run -d -p 宿主机端口2:容器端口 --network 网络名称2 --name 网络名称2 容器名
- 现在两个容器已经在同一网段 可以通过ip ping通
network命令:
不会了就输入下面这个
docker network --help
查看网络列表
docker network ls
删除网络
docker network rm 网络ID
创建网络
docker network create 网络名称
查看网络详情
docker network inspect 网络名称