Docker 卷是为Docker 容器设置持久存储的首选机制。卷是安装在容器内的主机文件系统上的现有目录。它们可以从容器和主机系统访问。Docker 还允许用户挂载通过 NFS 远程文件共享系统共享的目录。为此目的创建的卷使用 Docker 自己的 NFS 驱动程序,无需在主机系统上挂载 NFS 目录。
先决条件
- 在远程机器上安装和配置 NFS 服务器。
- Docker 安装在本地机器上。
- 具有 root/sudo 权限的用户帐户。
主要分享低代码、微服务、容器化、SAAS、系统架构方面的的内容,希望大家点赞,评论,关注。
创建 NFS Docker 卷
创建和管理 Docker 卷的最简单方法是使用docker volume命令及其子命令。
创建 NFS Docker 卷的语法包括两个选项。
- 该--driver选项定义了local卷驱动程序,它接受类似于mount Linux 中的命令的选项。
- --opt多次调用该选项以提供有关卷的更多详细信息。
详细信息包括:
- 卷类型。
- 写模式。
- 远程 NFS 服务器的 IP 或 Web 地址。
- 服务器上共享目录的路径。
下面的示例说明了如何创建一个名为nfs-volume. 该卷包含/mnt/nfsdir位于服务器上的目录,具有rw(读/写)权限。服务器的 IP 地址是10.240.12.70。
成功执行的命令输出卷的名称。
注意:在创建 NFS 卷之前,请确保 Docker 主机系统的IP 地址列在/etc/exports服务器上的文件中。
列出可用的 Docker 卷。
输出列出了您创建的卷。
使用子命令检查卷inspect。
输出显示卷配置。
在容器中挂载 NFS
要将 NFS 卷挂载到容器中,请nfs-common在主机系统上安装软件包。
首先更新存储库。
使用 APT 安装nfs-common软件包。
确认您要安装软件包并等待安装完成。
注意:如果使用 YUM 或 RPM 进行包管理,则 DNS 客户端包称为nfs-utils.
使用docker run 命令启动容器。在该部分中指定 NFS 卷和安装点--mount。
下面的示例将 NFS 卷挂载nfs-volume到容器中的/mnt目录。
使用命令确认卷已成功挂载docker inspect。
Mounts输出部分包含安装到容器中的卷。
使用以下命令进入容器环境 bash shell docker exec:
列出目录的内容/mnt。
输出显示托管在/mnt/nfsdir服务器目录中的文件。
如果您在 Docker 容器中创建文件,也可以在服务器上的原始目录中访问该文件。要进行测试,请使用touch 命令在/mnt目录中创建一个空文件。
在服务器上,导航到您共享的目录并列出其内容。出现在 Docker 容器中创建的文件。
使用 Docker Compose 挂载 NFS 卷
如果您使用Docker Compose来管理您的容器,请通过在 YML 文件中定义来挂载 NFS 卷。
创建 YML 文件。
volumes在该部分中定义 NFS 卷。
注意:nolock和soft选项确保 Docker 在与 NFS 服务器的连接丢失时不会冻结。
使用命令创建并启动容器docker-compose up。
结论
本文解释了如何创建和挂载包含通过 NFS 共享的目录的 Docker 卷。本文中介绍的方法涉及使用命令行或 Docker Compose 安装卷。
主要分享低代码、微服务、容器化、SAAS、系统架构方面的的内容,希望大家点赞,评论,关注。
喜欢的朋友欢迎转发、关注~