网络篇

我们在进行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

  1. 新建自定义网络
  2. docker network create 网络名称
  3. docker ls
  4. 把容器一和容器二都加入自定义网络
  5. docker run -d -p 宿主机端口1:容器端口 --network 网络名称1 --name 网络名称1 容器名
  6. docker run -d -p 宿主机端口2:容器端口 --network 网络名称2 --name 网络名称2 容器名
  7. 现在两个容器已经在同一网段 可以通过ip ping通

network命令:

不会了就输入下面这个


docker network --help

查看网络列表

docker network ls

删除网络

docker network rm 网络ID

创建网络

docker network create 网络名称

查看网络详情

docker network inspect 网络名称


标签: none

添加新评论