Docker 卷为您的容器提供持久存储。存储在卷中的数据独立于容器存储,因此可以在重启和替换后恢复。卷支持同时使用多个容器,便于数据共享情况。
挂载 Docker 卷使其内容在目标容器内的特定目录路径中可用。卷的文件系统树中的所有内容都可以访问。如果您想要排除卷数据中的特定子目录,这可能会带来挑战。在本文中,您将学习一种在避免特定路径的同时安装卷的简单技术。
安装整个卷的默认行为通常是可取的。卷旨在存储由容器创建的数据,因此它们的内容应该与您的应用程序相关。
卷也可以使用主机绑定安装来填充。这些直接将您机器上的目录映射到容器内的路径。在主机目录中所做的更改将自动反映在容器中。
绑定挂载通常用于加速应用程序开发。您可以修改源代码并观察您的更改,而无需重新构建 Docker 映像。项目工作目录通常包含一些您不想被镜像的文件夹,例如node_modules和vendor.这些可能已经存在于您的容器中,在映像构建步骤期间填充。从挂载中排除本地文件夹可以让您使用映像提供的依赖项可靠地测试代码。
可以使用一种简单的技术从卷挂载中排除子目录:在您要忽略的路径上创建另一个挂载。如果您要安装/app到容器中,则可以通过将第二个空卷安装到以下位置/opt/app来排除目录:/app/node_modules/opt/app/node_modules
$ docker run --name