每当我跑:
docker run -p 8080:8080 -p 50000:50000 jenkins/jenkins
我丢失了我在前一个会话中对jenkins图像所做的所有更改,并且它总是会创建一个新图像。有人可以告诉我为什么会这样吗?
答案 0 :(得分:1)
如果要创建自定义Docker镜像,可以编写自己的Dockerfile:
FROM jenkins/jenkins
COPY ...
RUN ...
当您想在容器上安装不同的工具或更新与Jenkins无关的配置时,上述功能非常有用。
所有与jenkins相关的东西都在容器内的/var/jenkins_home
目录内(作业配置,工作空间......)
如果您想要保留此数据,可以尝试以下操作:
创建一个命名的Docker卷,并将容器中的数据装入卷中。这是为Docker执行此操作的首选方法。
$ docker volume create my-jenkins-volume
$ docker run -d -p 8080:8080 -v my-jenkins-volume:/var/jenkins_home/ -p 5000:5000 jenkins/jenkins
现在您可以删除容器,数据仍将存在于卷中。您可以使用相同的命令再次启动容器,并且将加载以前的所有配置。
如果你想"保存"你在新图像内部进行了更改,可以使用docker commit,但这通常不是完成任务的首选方式。