我以旧的方式使用Docker和卷容器:
docker run -d --name jenkins-data jenkins:tag echo "data-only container for Jenkins"
但是现在我通过创建命名卷更改为新方法:
docker volume create --name my-jenkins-volume
我将此新卷绑定到新的Jenkins容器。我只剩下一个文件夹,其中有/var/jenkins_home我以前的jenkins容器的文件夹。(通过使用docker cp)现在,我要用该文件夹的内容填充新的命名卷。
/var/jenkins_home
docker cp
我可以复制该文件夹的内容到/var/lib/jenkins/volume/my-jenkins-volume/_data吗?
/var/lib/jenkins/volume/my-jenkins-volume/_data
您 可以 数据无疑直接复制到/var/lib/docker/volumes/my-jenkins-volume/_data,但这样做你:
/var/lib/docker/volumes/my-jenkins-volume/_data
依靠对Docker主机的物理访问。如果您正在与远程docker API进行交互,则此技术将无效。
将来,依赖于卷实现的特定方面可能会发生变化,从而破坏您依赖它的任何流程。
我认为您最好依靠命令行客户端使用docker api可以完成的事情。最简单的解决方案可能只是使用一个辅助容器,例如:
docker run -v my-jenkins-volume:/data --name helper busybox true docker cp . helper:/data docker rm helper