有没有办法从主机装载多个卷以形成单个目标装入点?有点像这样:
docker run --name ubuntu_bash
--rm --interactive --tty
--volume=/media/Large/videos:/videos
--volume=/media/Small/videos:/videos
ubuntu find /videos
我猜答案是否定的,但是由于"覆盖"在Docker的上下文中具有如此多的含义,因此在网络上搜索它有点困难。
如果没有,是否有 Docker 应用商店映像可能会有所帮助?不幸的是,许多 Docker 镜像没有给出有关如何使用它们的足够说明。
没有内置的 docker 方法来为卷执行此操作,它们通常是本地卷的绑定挂载。unionfs 挂载用于用于创建容器的映像层,但卷完全在此之外运行,并挂载在 unionfs 之上,拦截对该目录的所有文件系统请求。
如果创建解决方案以使用 Linux 挂载执行此操作,则可以使用相同的 Linux 挂载选项在 docker 中定义卷挂载。例如,在 docker 中执行 NFS 挂载的方法如下:
# For a reusable volume
$ docker volume create --driver local
--opt type=nfs
--opt o=addr=192.168.1.1,rw
--opt device=:/path/to/dir
foo
# For a local container with docker run
$ docker run -it --rm
--mount type=volume,dst=/container/path,volume-driver=local,volume-opt=type=nfs,volume-opt=o=addr=192.168.1.1,volume-opt=device=:/host/path
foo
# For a swarm mode service
$ docker service create
--mount type=volume,dst=/container/path,volume-driver=local,volume-opt=type=nfs,volume-opt=o=addr=192.168.1.1,volume-opt=device=:/host/path
foo
请注意,在所有这些示例中,卷驱动程序是本地的,卷选择用于传递所有挂载选项,就像在挂载命令上一样。