我做了docker pull jenkins:latest
然后我运行了容器:docker run --name jenk -p 8080:8080 jenkins
我在jenkins中设置了所有的工作,配置等。之后我做出了改变:
docker commit jenk myrepo/jenkins
当我现在拉动图像并启动它时:docker run myrepo/jenkins
所有配置都丢失了。我认为它会保留它。
答案 0 :(得分:1)
您还需要将推送到您的(远程)存储库,然后再重新启动它。提交仅将状态保存到本地驱动器。拉总是会进入存储库。
一些免费的建议:
Dockerfile
进行更改,通过扩展jenkins:latest并添加自己的更改。这使得它更易于维护和更改。问题:
您是在图像内部还是在已安装的卷上执行此操作? 根据{{3}},不会包含这些设置
提交操作不包括容器内安装的卷中包含的任何数据。
玩得开心: - )
答案 1 :(得分:1)
提交操作不包含卷中包含的任何数据 安装在容器内。
jenkins图像将jenkins称为卷VOLUME /var/jenkins_home
。卷容器创建的所有配置和作业。因此,当您提交容器时,所有这些配置都不会保留在
提交图像。
如果您在同一台计算机上运行新映像,则可以使用旧容器中的jenkins_home卷并获取完全相同的jenkins实例:
docker volume ls //To determine the old container volume name
docker run -v <old-volume-name>:/var/jenkins_home -p 8080:8080 myrepo/jenkins
如果您正在新机器上运行提交的内容:
docker cp <old-container>:/var/jenkins_home ./jenkins_home
现在将jenkins_home文件夹复制到新机器上,然后将其安装到新容器上:
docker run -v ./jenkins_home:/var/jenkins_home -p 8080:8080 myrepo/jenkins