gpt4 book ai didi

docker - volume_from指令-docker撰写

转载 作者:行者123 更新时间:2023-12-02 18:19:00 24 4
gpt4 key购买 nike

使用以下docker-compose.yml文件:

test:
build: ../../
dockerfile: docker/dev/Dockerfile
volumes_from:
- cachev

cachev:
build: ../../
dockerfile: docker/dev/Dockerfile
volumes:
- /build
entrypoint: "true"

上面文件中的 cachev服务启动了卷容器,该容器在docker host中的 /var/lib/docker/文件夹中创建匿名卷,并在卷容器( /cache)中创建安装点 xx_cachev
volumes_from服务下的 test指令是否在 /build容器中创建 xx_test挂载点?指向 /build容器的 xx_cachev挂载点?

最佳答案

volumes_from docs:

Mount all of the volumes from another service or container...



所以简短的答案是 :
volumes_from挂载 /build服务内 cachev服务定义的 test卷。

长答案:

要回答您的问题,我们运行 test服务:
docker compose up test
在回答您的问题之前,让我们确保描述清楚:

cachev service in above file launches volume container...



这只是常规容器,由于 entrypoint: "true"会立即退出。
docker ps -a应该显示:
ac68a33abe59 cache "true" 16 hours ago Exited (0) 4 minutes ago cache_1
但是在退出之前,它会创建 volumes:中指定的卷。因此,如果其他服务使用其卷进行缓存,我们可以将其称为卷容器。

that creates anonymous volume in /var/lib/docker/ folder in docker host



同意。 - /build是匿名卷。可以通过查看所有容器安装来验证:
docker inspect [cachev_container_id] --format '{{json .Mounts}}' | jq
应该显示如下内容:
  {
"Type": "volume",
"Name": "1ec7ff7c72bfb5a3259ed54be5b156ea694be6c8d932bcb3fa6e657cbcaea378",
"Source": "/var/lib/docker/volumes/1ec7ff7c72bfb5a3259ed54be5b156ea694be6c8d932bcb3fa6e657cbcaea378/_data",
"Destination": "/build",
"Driver": "local",
"Mode": "",
"RW": true,
"Propagation": ""
}
jq是在bash中处理json的强大工具。安装它以使上面的命令起作用。

and creates mount point /cache within volume container(xx_cachev).



您提供的 cachev:服务规范中看不到任何挂载的迹象。

如果将映射 - /tmp/cache:/cache添加到其 volumes部分,然后再次运行 docker compose up test并检查退出的容器,则应该看到:
  {
"Type": "bind",
"Source": "/tmp/cache",
"Destination": "/cache",
"Mode": "rw",
"RW": true,
"Propagation": "rprivate"
}

请注意, docker inspect [cachev_service_id] --format '{{json .Mounts}}' | jq将显示所有容器安装,包括使用 docker/dev/Dockerfile指令在 VOLUME中指定的安装。

回答您的问题,我们需要检查 test服务容器:
docker inspect [test_container_id] --format '{{json .Mounts}}' | jq:

如果有 docker/dev/Dockerfile指令,它将显示 cachev中指定的所有卷以及 volumes_from中的所有卷。

您可以看到 testcache容器都具有:
  {
"Type": "volume",
"Name": "1ec7ff7c72bfb5a3259ed54be5b156ea694be6c8d932bcb3fa6e657cbcaea378",
"Source": "/var/lib/docker/volumes/1ec7ff7c72bfb5a3259ed54be5b156ea694be6c8d932bcb3fa6e657cbcaea378/_data",
"Destination": "/build",
"Driver": "local",
"Mode": "",
"RW": true,
"Propagation": ""
}

在它们的坐骑中,此体积在 docker compose up test的后续运行中得以幸存

关于docker - volume_from指令-docker撰写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58439706/

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