docker - 无法从 Jenkins 访问Docker Daemon

标签 docker jenkins

我在Docker容器中运行Jenkins。

我使用以下命令启动容器-

docker run -p 8080:8080 -p 50000:50000 -v "${PWD}:/var/jenkins_home" -v /var/run/docker.sock:/var/run/docker.sock aemdesign/jenkins

注意-v /var/run/docker.sock:/var/run/docker.sock-我这样做是为了按照this文章从Jenkins中访问docker守护程序。

我使用cddocker exec -it <mycontainer> bash放入jenkins容器

然后我运行docker ps -a,但仍然出现docker command not found错误。

我在网上做了更多研究,发现了有关Jenkins的docker插件,并将其配置为连接到docker守护程序。我收到以下错误

enter image description here

我想念什么吗?我该如何解决这个问题?请注意,我是在MAC机器上本地执行此操作的。

最佳答案

-v /var/run/docker.sock:/var/run/docker.sock,这仅意味着您的容器具有访问主机上的docker daemon的能力,并不意味着您的容器将具有docker client

您可以使用-v $(which docker):/usr/bin/dockerdocker client添加到您的容器中,然后您将找到命令。

 docker run -u root -p 8080:8080 -p 50000:50000 -v $(which docker):/usr/bin/docker -v "${PWD}:/var/jenkins_home" -v /var/run/docker.sock:/var/run/docker.sock aemdesign/jenkins

如果您要保留jenkins用户,则可以使用另一种方法。
docker run -u jenkins:$(cut -d: -f3 < <(getent group docker)) -p 8080:8080 -p 50000:50000 -v $(which docker):/usr/bin/docker -v "${PWD}:/var/jenkins_home" -v /var/run/docker.sock:/var/run/docker.sock aemdesign/jenkins

关于docker - 无法从 Jenkins 访问Docker Daemon,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56144610/

相关文章:

java - maven:无法覆盖 tomcat 服务器的 server.port

Azure 应用服务 - 我是否需要在 docker-compose 中公开端口

testing - Jenkins 测试结果分析器不显示结果

docker - 将 docker 容器添加到正在运行的 OpenShift pod

docker - 从 Docker 容器显示 Android Studio GUI,同时通过 headless Ubuntu 服务器进行 SSH 隧道传输

jenkins - Packer、Jenkins、Cloudformation,如何让他们协同工作?

android - Jenkins Android 构建失败 - 无法构建 libwebviewchromium.so

git - Jenkins Poll SCM (Git) o​​n Windows master/Build on Linux slave

apache - 如何在 Docker 容器中使用 Apache 并且什么都不写到磁盘(所有日志到 STDIO/STDERR)?

docker - 为Rethinkdb Docker Swarm处理多个持久卷