Docker概念
网络
Bridge
优点:隔离性和灵活性
缺点:性能开销大
默认的Docker网络模式
Docker会在宿主机上创建一个虚拟网桥[docker0],并将容器连接到虚拟网桥上
容器之间以及容器与宿主机之间可以通过IP地址进行通信
每个容器都会获得一个独立的IP地址和Network Namespace,容器间的通信通过虚拟网桥进行转发,实现了网络隔离和互操作性
Host
优点:网络性能高
缺点:网络隔离性差[与主机共享网络栈]
容器直接使用宿主机的网络栈,没有独立的IP地址和Network Namespace
None
优点:配置简单
缺点:容器无法进行网络通信
容器没有网络配置,没有网卡,没有IP,没有路由,仅有LO环回网络
适用于不需要连外网或存放重要数据的场景
术语
Stack
Stack 是一组相关的服务、网络和卷的集合,它们作为一个整体进行部署和管理,通常通过一个 docker-compose.yml 文件来定义
不同 Stack 里的容器默认情况下网络是不互通的。因为每个 Stack 都有自己独立的网络命名空间,容器在各自 Stack 的网络环境中运行。
Volumes 数据卷
- 数据持久化
容器是有生命周期的,当容器被删除时,容器内部文件系统上的数据会随之丢失。而数据卷独立于容器的生命周期存在,即使容器被删除,数据卷中的数据也不会丢失。
方便数据备份、恢复和迁移
应用场景:更新数据库容器的镜像或重新部署容器时,数据库中的数据不会丢失。
- 数据共享
多个容器可以同时挂载同一个数据卷,实现容器间的数据共享。
应用场景:通过挂载同一个数据卷,前端容器上传的文件可以被后端容器访问和处理
- 分类容器和数据
-
提高灵活性:数据卷允许将数据存储与容器分离,使得容器可以专注于运行应用程序,而数据的管理和维护可以独立进行。
-
方便更新和维护:当需要更新容器的镜像或配置时,不会影响数据卷中的数据,减少了数据丢失的风险。
-
实际应用场景:在开发和测试过程中,可以频繁地更换容器的镜像,而不会影响数据卷中的测试数据。
- 避免数据写入容器层
-
性能优化:容器的写操作通常会在容器层进行,过多的写操作会导致容器层变大,影响容器的性能和启动速度。使用数据卷可以将数据写入独立的数据卷中,避免容器层的膨胀。
-
实际应用场景:在高并发的 Web 应用中,将日志文件存储在数据卷中,避免日志文件的频繁写入影响容器的性能。

浙公网安备 33010602011771号