gpt4 book ai didi

docker - 如何使用 Docker 的 --volumes-from 映射卷路径?

转载 作者:IT老高 更新时间:2023-10-28 12:35:28 24 4
gpt4 key购买 nike

我是 Docker 新手,对使用 --volumes-from 功能感到很兴奋,但有些东西我不明白。

如果我想将 --volumes-from 与两个仅数据容器一起使用,每个容器都导出名为 /srv 的卷,如何防止卷路径从碰撞?我可以在使用 [host-dir]:[container-dir] 创建绑定(bind)挂载时映射卷名;如何使用 --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 的 --volumes-from 映射卷路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23137544/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com