我是Docker的新手,对使用该--volumes-from
功能感到兴奋,但是有些事情我不了解。
如果我想使用--volumes- from
两个仅数据容器,每个容器都导出名为的卷/srv
,如何防止卷路径冲突?使用创建绑定装载时,我可以映射卷名称[host- dir]:[container-dir]
。我该怎么做--volumes-from
?
所以我想要的看起来像这样:
docker run --name=DATA1 --volume=/srv busybox true
docker run --name=DATA2 --volume=/srv busybox true
docker run -t -i -rm --volumes-from DATA1:/srv1 --volumes-from DATA2:/srv2 ubuntu bash
可以完成,但目前在Docker命令行界面中尚不支持。
查找卷目录:
docker inspect DATA1 | grep "vfs/dir"
# output something like:
# "/srv": "/var/lib/docker/vfs/dir/<long vol id>"
因此,您可以自动执行此操作,并将这些目录挂载到您选择的挂载点:
# load directories in variables:
SRV1=$(docker inspect DATA1 | grep "vfs/dir" | awk '/"(.*)"/ { gsub(/"/,"",$2); print $2 }')
SRV2=$(docker inspect DATA2 | grep "vfs/dir" | awk '/"(.*)"/ { gsub(/"/,"",$2); print $2 }')
现在,通过真实目录而不是–volumes-from挂载这些卷:
docker run -t -i -v $SRV1:/srv1 -v $SRV2:/srv2 ubuntu bash
IMO,功能是相同的,因为这与使用时所做的相同--volumes-from
。
读「Docker」关于 Docker volume 挂载时文件或文件夹不存在的问题 有感 用mysql的镜像做了一个实验 发现: 如果把mysql的/etc目录映射到 主机则会反覆盖 docker run -it -d --name mysql -v /docker-build/alpine/volume/:/etc -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7.
数据卷容器 --volumes-from 顾名思义,就是从另一个容器当中挂载容器中已经创建好的数据卷。 如果你有一些持续更新的数据需要在容器之间共享,最好创建数据卷容器。 数据卷容器,其实就是一个正常的容器,专门用来提供数据卷供其它容器挂载的。 我们首先先创建一个数据卷容器 $ sudo docker run -d -v /dbdata --name dbdata training/postgre
问题内容: 我正在寻找一种模式,该模式允许在Kubernetes中在同一容器上运行的两个容器之间共享卷。 我的用例是:我有一个在Docker容器中运行的Ruby on Rails应用程序。docker映像在目录中包含静态资产,我需要从在同一容器中并排运行的nginx容器访问这些资产。 在“ vanilla”泊坞窗中,我将使用flag共享此目录: 阅读此文档后:https : //github.co
我正在寻找一种模式,允许在Kubernetes的同一个pod上运行的两个容器之间共享卷。 我的用例是:我有一个在docker容器中运行的Ruby on Rails应用程序。docker映像包含应用程序中的静态资产/ 在“vanilla”docker中,我会使用“volumes from”标志共享此目录: 阅读此文档后:https://github.com/GoogleCloudPlatform/k
1、数据卷 数据卷是一个可供一个或多个容器使用的特殊目录,它绕过 UFS,可以提供很多有用的特性: 数据卷可以在容器之间共享和重用 对数据卷的修改会立马生效 对数据卷的更新,不会影响镜像 卷会一直存在,直到没有容器使用 *数据卷的使用,类似于 Linux 下对目录或文件进行 mount。 1.1 创建一个数据卷 在用 docker run 命令的时候,使用 -v 标记来创建一个数据卷并挂载到容器里
我使用创建容器。 现在我要删除此图像中的卷。 我该怎么办?