gpt4 book ai didi

jenkins - Jenkins用户使用docker(在docker容器内部)

转载 作者:行者123 更新时间:2023-12-02 18:24:08 25 4
gpt4 key购买 nike

我有一个dockerfile:

FROM jenkins:1.651.1
COPY plugins.txt /usr/share/jenkins/plugins.txt
RUN /usr/local/bin/plugins.sh /usr/share/jenkins/plugins.txt
USER root
RUN groupadd docker
RUN usermod -a -G docker jenkins
USER jenkins

我将用户 jenkins添加到组 docker中。
当我访问容器时:
jenkins@bc145b8cfc1d:/$ docker ps
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
jenkins@bc145b8cfc1d:/$ whoami
jenkins

这是我容器中 /etc/group的内容
jenkins:x:1000:
docker:x:1001:jenkins

我的jenkins用户在docker组中
jenkins@bc145b8cfc1d:/$ groups jenkins
jenkins : jenkins docker

我究竟做错了什么?我想对我的jenkins用户使用docker-commands。我正在使用Amazon EC2 Container Service。

这就是我从镜像启动容器的方式:
docker run -d -v /var/run/docker.sock:/var/run/docker.sock -v
/usr/bin/docker:/usr/bin/docker:ro -v
/lib64/libdevmapper.so.1.02:/usr/lib/x86_64-linux-gnu/libdevmapper.so.1.02
-v /lib64/libudev.so.0:/usr/lib/x86_64-linux-gnu/libudev.so.0
-p 8080:8080 --name jenkins -u jenkins --privileged=true -t -i
my-jenkins:1.0

最佳答案

这是我的“解决方案”,但仅适用于Ubuntu(不适用于我的centos)。
Docker文件

FROM jenkins:1.651.1
USER root
RUN apt-get update \
&& apt-get install -y apt-transport-https ca-certificates \
&& echo "deb https://apt.dockerproject.org/repo debian-jessie main" > /etc/apt/sources.list.d/docker.list \
&& apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D \
&& apt-get update -y \
&& apt-get install -y docker-engine
RUN gpasswd -a jenkins docker
USER jenkins

运行命令:
docker run -d -it -v /var/run/docker.sock:/var/run/docker.sock test-jenkins

在Ubuntu上:
jenkins@c73c683b02d7:/$ whoami
jenkins
jenkins@c73c683b02d7:/$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c73c683b02d7 test-jenkins "/bin/tini -- /usr/lo" 2 minutes ago Up 2 minutes 8080/tcp, 50000/tcp

condescending_wing

我认为它与 gid有关:
容器中的cat /etc/group(在ubuntu和centos上)。
jenkins:x:1000:
docker:x:999:jenkins

Ubuntu(也为999)上的cat /etc/group
docker:x:999:ubuntu

Centos上的cat /etc/group(不同的gid)
docker:x:983:centos

对此可能有解决方案。但是我只需要Ubuntu,因此在此方面不做进一步介绍。

关于jenkins - Jenkins用户使用docker(在docker容器内部),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37116612/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com