【笔记】Docker创建网络配置

前言

Docker创建网络配置学习笔记

查看所有网络

1
docker network ls
1
2
3
xxxxxxxxxxxx   bridge               bridge    local
xxxxxxxxxxxx host host local
xxxxxxxxxxxx none null local

查看指定网络的详细信息

<id>:网络配置或名称

1
docker network inspect <id>

删除网络

  • 只能删除自己创建的网络,不能删除Docker内置的网络
1
docker network rm <id>

bridge网络

  • bridge网络是桥接模式,可以创建多个bridge网络
  • 桥接的网段不可以是宿主机的网段
  • 使用bridge网络创建的容器在单独的网络环境,网络内的所有容器都可以相互通信,网络内的所有容器都可以与宿主机相互通信
  • Docker默认创建的bridge网络不能使用主机名进行访问,手动创建的bridge可以使用主机名进行访问
    • 使用bridge网络创建容器时,如果没有指定主机名,也可以使用容器名当做主机名进行访问
  • Docker首次安装完成,宿主机会创建一个用于桥接的虚拟网卡
    • 每当使用bridge网络创建一个容器,宿主机都会创建两个虚拟网卡,但是只有一个虚拟网卡会显示,这两个网卡会将宿主机的网络与容器的网络进行连接

创建bridge网络

--subnet=:指定网段
<name>:网络名称

1
docker network create --subnet=192.168.0.0/24 <name>

host网络

  • host网络是主机模式,host网络只能有一个,不能再次创建
  • 使用host网络创建的容器与宿主机共享IP地址,容器的所有开放端口都会映射到宿主机

none网络

  • none网络是无网络模式,none网络只能有一个,不能再次创建,内置的none网络的名称是null
  • 使用none网络创建的容器无网络连接

macvlan网络

  • macvlan网络是混杂模式(混淆模式),可以创建多个macvlan网络
  • Docker容器正常情况下不能和宿主机在相同的网段,可以通过macvlan网络实现容器与宿主机在相同网段

开启网卡的混杂模式

1
ip link set lan1 promisc on

创建macvlan网络

--subnet=:设置和宿主机相同的网段
--gateway=:设置和宿主机相同的网段的网关
parent:设置已经设置为混杂模式的网卡
doc_macvlan:docker网络名称

1
docker network create -d macvlan --subnet=192.168.200.0/24 --gateway=192.168.200.1 -o parent=lan1 doc_macvlan

启动容器时指定网络配置

--network=:指定网络名
--ip=:bridge网络可以指定容器IP地址
-p 80:80:bridge网络可以指定容器端口到宿主机端口的映射
--dns=:指定DNS服务器IP地址

1
docker run <name>

完成

参考文献

易百教程
Docker官方文档
哔哩哔哩——小黑智能
哔哩哔哩——技术蛋老师