重新附加孤立的docker卷
我正在使用我的dockerfile中指定的docker卷,以便我的数据可以保留在主机上。 dockerfile看起来像这样:
FROM base-image VOLUME /path/to/something RUN do_stuff ....
当我运行容器时,它会创build一个卷(称之为VolumeA ),我可以在执行docker docker volume ls
时看到这个docker volume ls
。
如果我停下来取出容器, VolumeA会像预期的那样粘住。
我的问题是,如果我运行新版本的容器,有没有办法使用VolumeA而不是创build一个新的?
我更喜欢使用命名卷,因为您可以轻松地将它们挂载到新的容器。
但对于未命名的卷,我:
- 运行我的容器(VOLUME指令导致它创build一个新的卷到一个新的path,你可以通过检查它)
- 将旧卷的path移动到新path。
在docker的卷命令之前, 我曾经用脚本 来做这件事 : updateDataContainerPath.sh
。
但是现在,我的图像还没有VOLUME
:我创build了单独命名的卷( docker volume create
),并在运行时将它们装载到容器( docker run -v my-named-volume:/my/path
)
您可以在docker run
命令中使用-v
标志将现有卷绑定到新的Docker容器
docker run -v VolumeA:/path/to/something [image]
还要查看--volumes-from
标志以装入由其他容器使用或创build的卷。
https://docs.docker.com/engine/reference/commandline/run/ https://docs.docker.com/engine/reference/commandline/volume_create/