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 数据卷

  1. 数据持久化

容器是有生命周期的,当容器被删除时,容器内部文件系统上的数据会随之丢失。而数据卷独立于容器的生命周期存在,即使容器被删除,数据卷中的数据也不会丢失。

方便数据备份、恢复和迁移

应用场景:更新数据库容器的镜像或重新部署容器时,数据库中的数据不会丢失。

  1. 数据共享

多个容器可以同时挂载同一个数据卷,实现容器间的数据共享

应用场景:通过挂载同一个数据卷,前端容器上传的文件可以被后端容器访问和处理

  1. 分类容器和数据
  • 提高灵活性:数据卷允许将数据存储与容器分离,使得容器可以专注于运行应用程序,而数据的管理和维护可以独立进行。

  • 方便更新和维护:当需要更新容器的镜像或配置时,不会影响数据卷中的数据,减少了数据丢失的风险。

  • 实际应用场景:在开发和测试过程中,可以频繁地更换容器的镜像,而不会影响数据卷中的测试数据。

  1. 避免数据写入容器层
  • 性能优化:容器的写操作通常会在容器层进行,过多的写操作会导致容器层变大,影响容器的性能和启动速度。使用数据卷可以将数据写入独立的数据卷中,避免容器层的膨胀。

  • 实际应用场景:在高并发的 Web 应用中,将日志文件存储在数据卷中,避免日志文件的频繁写入影响容器的性能。

posted @ 2025-03-29 00:00  WiseHYH  阅读(9)  评论(0)    收藏  举报