docker volume create volume1
docker run -d \
-v volume1/dir1:xxx \
xxx
创建一个 volume volume1
请问有没有什么办法把 volume1/dir1
挂载到 xxx
呢?
需求场景: 我需要把一个 volume
挂载到不同的容器,用来给容器的某个目录做缓存。
比如
容器a 缓存到 volume/a/node_modules
容器b 缓存到 volume/b/node_modules
容器c 缓存到 volume/c/node_modules
我并不想创建很多个 volume, 比如 volume_a
缓存 容器a, volume_b
缓存 容器b
测试如下
hostpath方式,如下宿主机上的/nginxdata都挂到了我三个容器的/home下:
volume方式测试如下,可以看到ng1里创建了test.txt,ng2和ng3都能看到这个文件,证明他们写到同一个volume里的。
以上测试充分说明,无论是hostpath,还是docker创建的volume都可以说明,同一个卷可以挂在不同的容器里,那么你提前在三个容器里分别创建如下目录,然后docker run的时候,把卷挂到对应目录就可以了。
容器a 创建 volume/a/node_modules 目录
容器b 创建 volume/b/node_modules 目录
容器c 创建 volume/c/node_modules 目录