Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
docker中的jenkins-无法连接到unix:///var/run/docker.sock. docker守护进程正在运行吗?_Docker_Jenkins - Fatal编程技术网

docker中的jenkins-无法连接到unix:///var/run/docker.sock. docker守护进程正在运行吗?

docker中的jenkins-无法连接到unix:///var/run/docker.sock. docker守护进程正在运行吗?,docker,jenkins,Docker,Jenkins,我要去码头。试图在詹金斯建立一个码头工人的形象 但我得到了以下错误: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? 显然,docker中的jenkins版本没有访问docker二进制文件的权限 我通过, docker exec -it db4292380977 bash docker images Cannot connect to the Do

我要去码头。试图在詹金斯建立一个码头工人的形象

但我得到了以下错误:

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
显然,docker中的jenkins版本没有访问docker二进制文件的权限

我通过,

docker exec -it db4292380977 bash
docker images
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
db4292380977是正在运行的容器。它显示了相同的错误

问题:

如何允许访问jenkins容器中的docker?
您需要挂载本地/var/run/docker.sock并以root用户身份运行容器

注意:这可能是一个安全漏洞,因此请注意谁有权访问jenkins容器

docker run -p 8080:8080 --user root \
     -v /var/run/docker.sock:/var/run/docker.sock jenkinsci/blueocean
您将能够在容器内执行docker

➜  ~  docker exec -it gracious_agnesi bash                                                                                              
bash-4.4# docker ps                                                                                                                     
CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS              PORTS                        
       NAMES                                                                                                                            
c4dc85b0d88c        jenkinsci/blueocean   "/sbin/tini -- /usr/…"   18 seconds ago      Up 16 seconds       0.0.0.0:8080->8080/tcp, 50000
/tcp   gracious_agnesi

您需要挂载本地/var/run/docker.sock并以root用户身份运行容器

注意:这可能是一个安全漏洞,因此请注意谁有权访问jenkins容器

docker run -p 8080:8080 --user root \
     -v /var/run/docker.sock:/var/run/docker.sock jenkinsci/blueocean
您将能够在容器内执行docker

➜  ~  docker exec -it gracious_agnesi bash                                                                                              
bash-4.4# docker ps                                                                                                                     
CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS              PORTS                        
       NAMES                                                                                                                            
c4dc85b0d88c        jenkinsci/blueocean   "/sbin/tini -- /usr/…"   18 seconds ago      Up 16 seconds       0.0.0.0:8080->8080/tcp, 50000
/tcp   gracious_agnesi

只需尝试执行相同的命令,但在开始时使用sudo即可

比如说

sudo docker images
sudo docker exec -it db4292380977 bash
为了避免将来使用sudo,您应该在Unix操作系统中运行此命令

sudo usermod -aG docker <your-user>

此时正在使用的用户的更改。请记住注销并重新登录,以使其生效!有关Docker安装的更多信息单击

仅尝试执行相同的命令,但在开始时使用sudo

比如说

sudo docker images
sudo docker exec -it db4292380977 bash
为了避免将来使用sudo,您应该在Unix操作系统中运行此命令

sudo usermod -aG docker <your-user>

此时正在使用的用户的更改。请记住注销并重新登录,以使其生效!有关Docker安装的更多信息单击

Docker客户端安装在jenkinsci/blueocean映像上,但不安装守护进程。默认情况下,Docker客户端将通过套接字使用守护进程unix:///var/run/docker.sock. Docker客户端需要Docker守护进程才能工作,您可以阅读更多信息

您可以做什么:

在docker DinD图像中使用docker 提供一种在Docker中运行Docker守护程序的方法,然后您可以从另一个容器中使用它。例如,使用普通docker CLI:

docker run --name docker-dind --privileged -d docker:stable-dind
docker run --name jenkins --link=docker-dind -d jenkinsci/blueocean
docker exec jenkins docker -H docker-dind images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
Docker守护进程在Docker dind容器中运行,可以使用相同的主机名访问。您只需要向docker客户端提供守护进程主机-H docker dind,在示例中,您还可以使用docker_host env变量,如中所述

在容器中装载主机/var/run/docker.sock 如回答所述:


docker客户端安装在jenkinsci/blueocean映像上,但不安装守护进程。默认情况下,Docker客户端将通过套接字使用守护进程unix:///var/run/docker.sock. Docker客户端需要Docker守护进程才能工作,您可以阅读更多信息

您可以做什么:

在docker DinD图像中使用docker 提供一种在Docker中运行Docker守护程序的方法,然后您可以从另一个容器中使用它。例如,使用普通docker CLI:

docker run --name docker-dind --privileged -d docker:stable-dind
docker run --name jenkins --link=docker-dind -d jenkinsci/blueocean
docker exec jenkins docker -H docker-dind images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
Docker守护进程在Docker dind容器中运行,可以使用相同的主机名访问。您只需要向docker客户端提供守护进程主机-H docker dind,在示例中,您还可以使用docker_host env变量,如中所述

在容器中装载主机/var/run/docker.sock 如回答所述:


请记住在docker容器内安装sudo,jenkins image不附带sudo预安装Member要在docker容器内安装sudo,jenkins image不附带sudo预安装我使用具有管理员权限的windows并使用此命令运行docker with blueocean。但我在拨打gRPC时出错:无法连接到Docker守护进程。“docker daemon”是否在此主机上运行?:拨打tcp:lookup docker on 127.0.11:53:没有这样的主机docker容器运行-名称jenkins blueocean-rm-detach-network jenkins-env docker_主机=tcp://docker:2376 -env DOCKER\u CERT\u PATH=/certs/client-env DOCKER\u TLS\u VERIFY=1-发布8080:8080-发布50000:50000-卷jenkins数据:/var/jenkins\u home-volume jenkins docker certs:/certs/client:ro jenkinsci/blueocean我正在使用具有管理员权限的windows,并使用此命令运行docker with blueocean。但我在拨打gRPC时出错:无法连接到Docker守护进程。“docker daemon”是否在此主机上运行?:拨打tcp:lookup docker on 127.0.11:53:没有这样的主机docker容器运行-名称jenkins blueocean-rm-detach-network jenkins-env docker_主机=tcp://docker:2376 -env DOCKER\u CERT\u PATH=/certs/client-env DOCKER\u TLS\u VERIFY=1-发布8080:8080-发布50000:50000-卷jenkins数据:/var/jenkins\u home-卷jenkins docker证书:/certs/客户:ro jenkinsci/blueocean