我嘗試在CentOS7.1上的Jenkins slave容器中運行Docker。 這是我在dockerfile執行的步驟:+ A組泊塢窗(gid983)在Centos7上運行docker與jenkins容器內的jenkins用戶
FROM java:8
ARG user=jenkins
ARG group=jenkins
ARG uid=1000
ARG gid=1000
RUN groupadd -g ${gid} ${group} \
&& useradd -d "$JENKINS_HOME" -u ${uid} -g ${gid} -m -s /bin/bash ${user}
RUN groupadd -g 983 docker \
&& gpasswd -a ${user} docker
所以我有一組詹金斯(gid1000)用戶詹金斯(ID1000)。我爲什麼選擇gid 983? 那麼,如果我在我的主機檢查/etc/group
我看到:
docker:x:983:centos
在我的碼頭工人,撰寫劇本,我安裝我的搬運工插座所以這就是爲什麼我用同樣的GID作爲我的主機上。
泊塢窗,撰寫的部分:
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /usr/bin/docker:/usr/bin/docker
當我exec
我的容器內爲根:
[email protected]:/var/jenkins_home# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
jenkins-slave 1.0 94a5d6606f86 10 minutes
jenkins 2.7.1 b4974ba62598 3 weeks ago 741 MB
java 8-jdk 264282a59a95 7 weeks ago 669.2 MB
但由於詹金斯用戶:
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
在我的容器:
cat /etc/passwd
jenkins:x:1000:1000::/var/jenkins_home:/bin/bash
cat /etc/group
jenkins:x:1000:
docker:x:983:jenkins
增加:
$ docker exec -it ec52d4125a02 bash
[email protected]:/var/jenkins_home# whoami
root
[email protected]:/var/jenkins_home# su jenkins
[email protected]:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a23521523249 jenkins:2.7.1 "/bin/tini -- /usr/lo" 20 minutes ago Up 20 minutes 0.0.0.0:8080->8080/tcp, 0.0.0.0:32777->22/tcp, 0.0.0.0:32776->50000/tcp jenkins-master
ec52d4125a02 jenkins-slave:1.0 "setup-sshd" 20 minutes ago Up 20 minutes 0.0.0.0:32775->22/tcp, 0.0.0.0:32774->8080/tcp, 0.0.0.0:32773->50000/tcp jenkins-slave
但:
$ docker exec -it -u jenkins ec52d4125a02 bash
[email protected]:~$ docker ps
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
在第一種情況下,我的詹金斯用戶:
uid=1000(jenkins) gid=1000(jenkins) groups=1000(jenkins),983(docker)
在第二種情況:
uid=1000(jenkins) gid=1000(jenkins) groups=1000(jenkins)
你'嗯挑選幾個關鍵部分以便能夠重現您的問題。特別是Dockerfile中的'FROM'行。我已經做了類似的主要區別,我的Jenkins圖像做了Docker的安裝,而不是掛載可執行文件,我的命令是基於debian的。您的容器內是否定義了「$ DOCKER_HOST」變量? – BMitch
變量未定義。我實際上嘗試使用docker作爲jenkinsuser在我用docker創建的jenkins-slave中。它只是一個具有java和SSH訪問權限的容器,它具有jenkins-user +組和裝載的docker卷。它並不包含dockerfile中的jenkins(它來自主設備)。我已經添加了我的FROM +我不使用該變量。 – lvthillo
@BMitch我還添加了一個我的問題。 – lvthillo