学习优先级:★★★★☆
易用性:★★★☆☆
外部卷对于在容器和宿主机之间共享数据非常重要。在 Docker Compose 中,可以使用 volumes 指令将宿主机上的特定目录或数据绑定到容器中,以确保数据在容器重启后仍然可用。
volumes 指令允许将数据存储在容器外部,这样数据在容器重启时不会丢失。以下是一个示例,展示了如何在 Docker Compose 中定义外部卷。
示例代码
version: "3.8"
services:
web:
image: nginx
ports:
- "8080:80"
volumes:
- ./html:/usr/share/nginx/html # 将本地目录绑定为卷
执行结果
运行此配置后,Nginx 网站在 http://localhost:8080 上显示,且在本地目录 ./html 中所做的所有更改都会直接反映在网页上。
在 Docker Compose 中使用外部卷特别有用,尤其是在需要在容器和宿主机之间交换数据时。这在 Web 应用程序中很常见,因为更改宿主机文件系统中的源代码应该在容器中直接可见,而无需重新创建容器。通过这种方式绑定卷,容器保持灵活性,更新也变得简单。
补充说明
外部卷也可以用于数据库,以持久化存储数据,使其在容器重启后仍然可用。Docker 支持两种主要类型的卷:
- 绑定挂载(bind mounts):直接连接到宿主机的文件或目录。
- Docker 管理的卷(Docker-managed volumes):由 Docker 子系统管理的卷。
这些卷类型提供了不同的数据持久化和共享选项,适用于不同的使用场景。