Docker-volume-理解

参考

理解

本地

volume 感觉和挂载类似, 如果命令如下:

1
docker run -it --name test -v ~/Blog:/home/Blog ubuntu /bin/bash

前者 ~/Blog 是你自己机子上的目录 (即宿主机上的目录), 后者 /home/Blog 是 docker 容器内的目录, 如果你进入容器, 然后修改了 /home/Blog 下的文件, 比如说添加了一个文件 file.c 那么宿主机上的 ~/Blog 目录中也会相应被添加了一个 file.c, 两者共享了这个目录, 反之在宿主机上操作这个目录也是同理.

自己创建

若是用:

1
docker run -it --name test -v /home/Blog ubuntu /bin/bash

没有指定本地的目录, 那么 docker 会在 /var/lib/docker/volumes/ 目录下创建一个 volume, 并生成一个 ID 作为名称.

可以用 docker volume 命令来管理卷.

上面让 docker 创建卷也可以指定名称:

1
docker run -it --name test -v volumetest:/home/Blog ubuntu /bin/bash

指定权限

rw (read and write) 和 ro (read only), 如:

1
docker run -it --name test -v volumetest:/home/Blog:ro ubuntu /bin/bash

多个容器中共享

一个容器在 run 的时候, 用 --volume-from 这一个命令指定另一个容器, 就能获取另一个容器的全部 volume.

如:

1
docker run -it --name test2 --volume-from test1 ubuntu:20.04 /bin/bash

Docker-volume-理解
http://example.com/2022/09/26/Docker-volume-理解/
作者
Jie
发布于
2022年9月26日
许可协议