我正在阅读Jenkins Docker README的这一部分,从我目前的理解来看,似乎有一部分与自己矛盾。
https://github.com/jenkinsci/docker/blob/master/README.md
在我看来,据说不使用绑定(bind)安装,然后说强烈建议使用绑定(bind)安装?
您是否使用绑定(bind)安装?你会推荐他们吗?为什么或者为什么不?该文档似乎模棱两可。
最佳答案
如所评论的,使用的语法是for a volume:
docker run -d -v jenkins_home:/var/jenkins_home -n jenkins ...
定义了一个名为jenkins_homes的Docker卷,它将在以下位置创建:
/var/lib/docker/volumes/jenkins_home
。这个想法是,您可以轻松地backup said volume:
$ mkdir ~/backup
$ docker run --rm --volumes-from jenkins -v ~/backup:/backup ubuntu bash -c “cd /var/jenkins_home && tar cvf /backup/jenkins_home.tar .”
并将其重新加载到另一个Docker实例。
这与bind-mounts不同,后者确实涉及构建新的Docker镜像,以便能够由本地用户(官方Jenkins镜像中定义的默认用户
1000:1000
)挂载本地文件夹所有者。FROM jenkins/jenkins:lts-jdk11
USER root
ENV JENKINS_HOME /var/lib/jenkins
ENV COPY_REFERENCE_FILE_LOG=/var/lib/jenkins/copy_reference_file.log
RUN groupmod -g <yourId>jenkins
RUN usermod -u <yourGid> jenkins
RUN mkdir "${JENKINS_HOME}"
RUN usermod -d "${JENKINS_HOME}" jenkins
RUN chown jenkins:jenkins "${JENKINS_HOME}"
VOLUME /var/lib/jenkins
USER jenkins
请注意,您必须声明一个新卷(此处为
/var/lib/jenkins
),因为如 jenkinsci/docker
issue 112所示,官方/var/jenkins_home
路径已在官方Jenkins镜像中声明为VOLUME,并且您不能对其进行chown或chmod。这种方法的优点是无需使用Docker即可查看Jenkins主页的内容。
您可以使用以下命令运行它:
docker run -d -p 8080:8080 -p 50000:50000 \
--mount type=bind,source=/my/local/host/jenkins_home_dev1,target=/var/lib/jenkins \
--name myjenkins \
myjenkins:lts-jdk11-2.190.3
sleep 3
docker logs --follow --tail 10 myjenkins
关于docker - Jenkins Docker镜像,是否要使用绑定(bind)挂载?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56811106/