docker网络与数据持久化
目录
一.docker网络模式
二.docker网络相关命令
三.docker数据持久化
3.1.数据卷挂载
3.1.1指定宿主机目录
3.1.2匿名卷
3.1.3命名卷
3.2数据卷容器
3.2.1数据卷容器的概念及用途
3.2.2数据卷容器的使用
一.docker网络模式
-
Host 模式
-
相当于 Vmware 中的桥接模式,与宿主机在同一个网络中,但没有独立 IP 地址。
-
容器与宿主机共享同一个 Network Namespace,使用宿主机的 IP 和端口。
-
使用
--net=host
指定。
-
-
Container 模式
-
新创建的容器与已存在的容器共享一个 Network Namespace。
-
共享 IP、端口范围等,但文件系统、进程列表等仍然隔离。
-
使用
--net=container:NAME_or_ID
指定。
-
-
None 模式
-
容器拥有自己的 Network Namespace,但不进行任何网络配置。
-
只有 lo 回环网络,没有其他网卡。
-
无法联网,但保证了容器的安全性。
-
使用
--net=none
指定。
-
-
Bridge 模式
-
Docker 的默认网络模式。
-
容器使用独立的 Network Namespace,并连接到
docker0
虚拟网卡。 -
通过
docker0
网桥和 iptables nat 表配置与宿主机通信。 -
为每个容器分配 IP,并通过 veth pair 设备与
docker0
网桥连接。 -
默认设置,可省略或使用
--net=bridge
指定。
-
-
自定义网络
-
允许用户自定义网络配置,如指定子网、网关等。
-
可以使用
docker network create
命令创建自定义网络。
-
总结
- Host:容器使用宿主机的 IP 和端口。
- Container:容器与另一个指定容器共享 IP 和端口范围。
- None:关闭容器的网络功能。
- Bridge:默认模式,为每个容器分配 IP 并连接到 `docker0` 虚拟网桥。
- 自定义网络:允许用户自定义网络配置。
模式 | 网络隔离 | 跨主机 | 端口映射 | 性能 | 典型场景 |
bridge | 隔离 | 否 | 需要 | 中 | 单主机多容器通信 |
host | 共享 | 否 | 不需要 | 高 | 高性能网络应用 |
none | 完全隔离 | 否 | 不需要 | 高 | 离线处理任务 |
container | 共享 | 否 | 不需要 | 高 | 紧密耦合服务 |
overlay | 隔离 | 是 | 部分需要 | 中 | 集群环境(Swarm、K8s) |
macvlan | 隔离 | 是 | 不需要 | 高 | 直接联网的容器 |
二.docker网络相关命令
docker network ls 查看当前docker的网络模式的信息
docker network create --driver 网络模式 --subnet 子网段 --gateway 指定网关ip net_name 自定义网络
docker run -itd --name c_name --network net_name image_name:tag 指定使用哪个网络
docker run -itd --name c2_name --network=container:c1_name image_name:tag container模式
三.docker数据持久化
数据持久化方法: