有没有一种方法来标记或命名卷实例使用docker撰写?

当使用docker撰写时,我发现很多卷实例:

› docker volume ls DRIVER VOLUME NAME local 4a34b9a352a459171137aac4c046a83f61e6e325b1df4b67dc2ddda8439a6427 local 6ce3e52ea363441b2c9d4b04c26b283d8b4cf631a137987da88db812a9a2d223 local a7af289b29c833510f2201647266001e4746e206128dc63313fe894821fa044d local fb09475f75fe943671a4e73d76c09c27a4f592b8ddf62224fc4b20afa0095809 

我想标记或命名它们,然后重新使用它们,如果可能的话每次重新创build它们。

那可能吗?

这些是匿名容器卷,当您定义没有名称的卷时会发生这种情况,或者将其绑定到主机文件夹。 这可能与您的Dockerfile中的VOLUME定义,docker 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 

一旦创build匿名卷,就没有简单的方法来重命名它。 最简单的解决scheme是将匿名卷与您的目标命名卷一起安装,并执行一个副本,例如:

 docker run -v 123456789:/source -v my-vol:/target --rm \ busybox cp -av /source/. /target/ 

其中123456789是匿名卷的长名称。