我使用docker-compose和以下配置部署了标准的Jenkins Docker映像:
deployer:
image: jenkins
volumes:
- "/mnt/jenkins:/var/jenkins_home"
- "/var/run/docker.sock:/var/run/docker.sock"
ports:
- "2375:2375"
- "8080:8080"
- "50000:50000"
在阅读了许多SO问题之后,我测试了将Root添加到docker用户组,gpasswd -a ${USER} docker
并验证Container中的用户是Root with docker exec jenkins_deployer echo ${USER}
。
当我尝试使用“ Docker URL = unix:///var/run/docker.sock”在Jenkins
UI中添加Docker访问时,出现错误消息“
**org.newsclub.net.unix.AFUNIXSocketException:权限被拒绝(套接字: /run/docker.sock)** “
如何让Jenkins访问docker.sock以自动部署Docker容器?
我知道我迟到了两年,但遇到了同样的问题,有了这种解决方案可以节省几个小时的工作。
因此,我需要部署一个自动部署Docker容器的Jenkins容器。这是我用来构建和运行的文件:
Docker文件
FROM jenkins/jenkins:latest
USER root
RUN apt-get update -qq \
&& apt-get install -qqy apt-transport-https ca-certificates curl gnupg2 software-properties-common
RUN curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
RUN add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/debian \
$(lsb_release -cs) \
stable"
RUN apt-get update -qq \
&& apt-get install docker-ce=17.12.1~ce-0~debian -y
RUN usermod -aG docker jenkins
docker-compose.yml
version: '3'
services:
jenkins:
container_name: 'jenkins-container'
privileged: true
build: .
ports:
- '8080:8080'
- '50000:50000'
volumes:
- jenkins-data:/var/jenkins_home
restart: unless-stopped
volumes:
jenkins-data:
然后,在这些文件所在的文件夹中,运行以下命令:
docker-compose up
容器启动后,使用它在内部启动Docker:
docker exec -it --user root <CONTAINER_ID>
service docker start
和瞧!可能会有一些更优化的解决方案,但是现在对我来说很棒。
现在<YOUR_IP>:8080
,您可以在浏览器中访问以访问可以运行Docker容器的全新Jenkins。
我可以对Docker API进行cUrl调用,但是如果我从容器(docker-comals)运行相同的脚本,我就无法到达任何API终结点。 我的请求如下: 原因可能是使用了localhost,但我现在还找不到解决方案。有什么建议吗? 编辑:下面是我正在使用的堆栈(Api平台)的简要摘要https://api-platform.com/).每个容器都连接到“api_默认”网桥网络: 基于php=Sy
我使用Docker compose和以下配置部署了标准Jenkins Docker映像: 在阅读了许多SO问题后,我测试了将Root添加到使用的docker用户组中,并验证了容器中的用户是使用的Root。 当我尝试在Jenkins UI中使用Docker URL=unix:///var/run/docker.sock添加Docker访问时,我会收到错误消息org.newsclub.net.unix
我有一个关于这个问题的问题https://hub.docker.com/r/jupyter/scipy-notebook.我正在尝试使用docker compose运行此图像: 组成: Dockerfile 我用手够不着它http://locahost:8888 .... 网址。我使用Windows10作为主机,并尝试从这个docker compose和这些工作中访问其他服务。
我有两个Docker容器在同一个网络中运行,我希望其中一个通过spring Webclient调用另一个。我确信他们都在同一个网络中- “finishConnect(…)失败:连接被拒绝:附件加载程序秒/172.21.0.5:80;嵌套异常为io。内蒂。频道AbstractChannel$AnnotatedConnect异常:finishConnect(…)失败:连接被拒绝:附件加载程序秒/172
我使用以下配置将lirc0绑定到容器中。 主机中/dev/lirc0的属性如下所示。 我使用lxc连接进入容器。容器中的属性与主机相同 但是无法打开。错误是“不允许操作”,我是容器中的主管(root)。 如何获得访问容器中的的权限?
问题内容: 我已经创建了hashicorp保管库部署并配置了kubernetes auth。保管库容器从Pod内部调用kubernetes api进行k8s身份验证,并且该调用失败,并显示500个错误代码(连接被拒绝)。我正在将docker用于Windows kubernetes。 我将以下配置添加到Vault中以进行kubernetes身份验证机制。 payload.json 我得到了预期的20