前言
Docker创建网络配置学习笔记
查看所有网络
1 2 3
| xxxxxxxxxxxx bridge bridge local xxxxxxxxxxxx host host local xxxxxxxxxxxx none null local
|
查看指定网络的详细信息
<id>:网络配置或名称
1
| docker network inspect <id>
|
删除网络
- 只能删除自己创建的网络,不能删除Docker内置的网络
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地址
完成
参考文献
易百教程
Docker官方文档
哔哩哔哩——小黑智能
哔哩哔哩——技术蛋老师