学习目标:
- Docker的网络管理
- Docker Swarm集群的使用
- Volumes数据卷的使用
1 Volumes 数据卷的优势
虽然 Docker 数据外部挂载机制提供了三种数据管理方式1,但在实际使用中,用到更多的是 Volumes 和 Bind mount 这两种数据管理方式。
这两种数据管理方式中, Volumes 完全由 Docker 管理,是官方相对推荐的数据管理方式;而 Bind mounts 则要依赖于主机的目录结构。
与 Bind mount(绑定挂载)相比,Volumes(数据卷)有以下几个优势:
- 数据卷比绑定挂载更容易备份和迁移
- 可以使用 Docker CLI 指令或 Docker API 来管理数据卷
- 在Linux 和 Windows 容器上都可以使用数据卷
- 在多个容器间可以更安全的共享数据卷
- 数据卷驱动允许在远程主机或云主机上存储数据卷,并且加密数据卷的内容添加其他功能
- 一个新的数据卷的内容可以由一个容器填充
此外,在容器的可写层中,数据卷通常是持久化数据更好的选择,因为数据卷并不会增加使用容器的大小,而且数据卷的内容存在于给定容器的生命周期之外。
如果我们的容器生成了非持久性状态数据,那么可以考虑使用 tmpfs mounts(tmpfs挂载),因为他可以避免永久存储数据,以及写入容器的可写层时增加容器的负担。
2 Volumes 数据卷使用
2.1 创建并管理数据卷
(1)创建数据卷
// 在 Docker 主机终端,创建一个名为 my-vol 的数据卷
$ docker volume create my-vol
(2)查看数据卷
// 查看本地数据卷列表
$ docker volume ls
(3)核查数据卷
// 查看指定数据卷详情
$ docker volume inspect my-vol
(4)删除数据卷
// 删除指定名称的数据卷
$ docker volume rm my-vol
2.2 启动容器并加载数据卷
(1)查看本机容器和数据卷
(2)确认查看本机 Docker 文件系统中的容器和数据卷
(3)启动容器并挂载数据卷
(4)再次查看本机容器和数据卷列表
(5)检查容器详情
(6)再次确认本机 Docker 文件系统中的容器和数据卷
针对 Docker volume 数据外部挂载机制,Docker 提供了三种不同的方式将数据从容器映射到 Docker 宿主机,它们分别为:volumes(数据卷)、bind mounts(绑定挂载)和 tmpfs mounts(tmpfs挂载)。 ↩︎