Data Volume 本质上是宿主机文件系统中的目录或文件,本文介绍常见 Docker 共享 Volumes 方法
共享宿主机的目录给容器
docker run -d \
--name=volume-test \
-v /opt/test-dir:/data/test-dir
busybox
- -v 表示创建一个数据卷并挂载到容器里,示例表示把宿主机的
/opt/test-dir
目录挂载到容器的/data/test-dir
目录下
共享容器的volume
volumes-from
docker run \
--name=storedata \
-v /opt/test-dir:/data/test-dir \
busybox true
定义一个名称为storedata的目录映射,示例表示把宿主机的/opt/test-dir
目录挂载到容器的/data/test-dir
目录下。其他的容器就可以采用–volumes-from
来使用该目录
docker run -d \
--name=v-test1 \
--volumes-from storedata \
busybox
docker run -d \
--name=v-test2 \
--volumes-from storedata \
busybox
ln方式
采用ln连接把不同目录挂载到同一个目录下
ln -s /data /opt/data-1/
ln -s /data /opt/data-2/
示例在/opt/data-1/
和/opt/data-2/
目录下都生成了一个指向/data
目录的快捷方式,因此访问/opt/data-1/
和/opt/data-2/
都是访问的/data
目录
搞定了链接,现在就可以直接采用-v来映射目录了
docker run -d \
--name=v-test3 \
-v /opt/data-1:/usr/data \
busybox
docker run -d \
--name=v-test4 \
-v /opt/data-1:/usr/data \
busybox
在v-test3
和v-test4
容器内部操作/usr/data
目录都是操作的宿主机的/data
目录