使用docker compose时,我发现了很多卷实例:
› docker volume ls
DRIVER VOLUME NAME
local 4a34b9a352a459171137aac4c046a83f61e6e325b1df4b67dc2ddda8439a6427
local 6ce3e52ea363441b2c9d4b04c26b283d8b4cf631a137987da88db812a9a2d223
local a7af289b29c833510f2201647266001e4746e206128dc63313fe894821fa044d
local fb09475f75fe943671a4e73d76c09c27a4f592b8ddf62224fc4b20afa0095809
我想标记或命名它们,然后在可能的情况下重复使用它们,而不是每次都重新创建它们。
这可能吗?
答案 0 :(得分:2)
这些是在定义没有名称的卷或将其绑定到主机文件夹时发生的匿名容器卷。这可能是Dockerfile中的VOLUME
定义,docker run -v /dir ...
而不是name:/dir
,或者是docker-compose.yml中只有目录的卷条目。执行命名安装的撰写文件的示例是:
version: '2'
volumes:
my-vol:
driver: local
services:
my-container:
image: my-image
volumes:
- my-vol:/container/path
创建匿名卷后,没有简单的方法可以重命名它。最简单的解决方案是将匿名卷与目标命名卷一起安装并执行复制,例如:
docker run -v 123456789:/source -v my-vol:/target --rm \
busybox cp -av /source/. /target/
其中123456789是匿名卷的长名称。