从
volumes_from文档:
所以简短的答案 是 :
volumes_from``/build在
cachev服务内部 装入由服务定义的卷
test。
长答案:
要回答您的问题,让我们运行该
test服务:
docker compose up test
在回答您的问题之前,让我们确保描述清楚:
上面文件中的cachev服务启动卷容器…
这只是常规容器,由于会立即退出
entrypoint: "true"。
docker ps -a应该显示:
ac68a33abe59 cache "true" 16 hours ago Exited (0) 4 minutes ago cache_1
但在退出之前,它会创建中指定的卷
volumes:。因此,如果其他服务使用其卷(例如进行缓存),我们可以将其称为卷容器。
在Docker主机的/ var / lib / docker /文件夹中创建匿名卷
同意。
- /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的好工具。安装它以使上面的命令起作用。
并在卷容器(xx_cachev)中创建安装点/ cache。
在
cachev:您提供的服务规格中看不到任何安装迹象。
如果将映射添加
- /tmp/cache:/cache到其
volumes部分,然后
docker compose uptest再次运行并检查退出的容器,则应该看到:
{ "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指令的卷。
您可以看到
test和
cache容器都具有:
{ "Type": "volume", "Name": "1ec7ff7c72bfb5a3259ed54be5b156ea694be6c8d932bcb3fa6e657cbcaea378", "Source": "/var/lib/docker/volumes/1ec7ff7c72bfb5a3259ed54be5b156ea694be6c8d932bcb3fa6e657cbcaea378/_data", "Destination": "/build", "Driver": "local", "Mode": "", "RW": true, "Propagation": "" }
在他们的坐骑中,这个体积在随后的
docker compose up test
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)