繁体   English   中英

Jenkins CI:podTemplate jenkinsfile unix:///var/run/docker.sock。 docker 守护程序是否正在运行?

[英]Jenkins CI : podTemplate jenkinsfile unix:///var/run/docker.sock. Is the docker daemon running?

在 jenkins 中,我想了解为什么“docker ps”没有在我的容器内运行,尽管我像这样编辑了我的 Jenkinsfile:

podTemplate(serviceAccount: 'jenkins', containers: [ 
    containerTemplate(
      name: 'docker', 
      image: 'docker', 
      resourceRequestCpu: '100m',
      resourceLimitCpu: '300m',
      resourceRequestMemory: '300Mi',
      resourceLimitMemory: '500Mi',
      command: 'cat', 
      privileged: true,
      ttyEnabled: true
    )
  ],

  volumes: [
    hostPathVolume(mountPath: '/var/run/docker.sock', hostPath: '/var/run/docker.sock')
  ]
  ) {
    node(POD_LABEL) {

        stage('Check running containers') {
            container('docker') {  
                sh 'hostname'
                sh 'hostname -i' 
                sh 'docker --version'
                sh 'docker ps'
            }
}

启动管道后,我总是收到这种消息:unix:///var/run/docker.sock。 docker 守护程序是否正在运行?

谢谢

它必须具有类似于使用 docker 命令运行 ps 的结果。

即使在 docker 容器中运行 Jenkins,也必须在其中安装 docker。

最好的方法是创建一个新的 Dockerfile 并在里面安装 docker。

FROM jenkins/jenkins

ARG HOST_UID=1004
ARG HOST_GID=999

USER root
RUN apt-get -y update && \
    apt-get -y install apt-transport-https ca-certificates curl gnupg-agent software-properties-common && \
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - && \
    add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/$(. /etc/os-release; echo "$ID") $(lsb_release -cs) stable" && \
    apt-get update && \
    apt-get -y install docker-ce docker-ce-cli containerd.io
RUN curl -L "https://github.com/docker/compose/releases/download/1.26.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose  \
    && chmod +x /usr/local/bin/docker-compose  \
    && ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose \
    && curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add - 
RUN echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | tee /etc/apt/sources.list.d/kubernetes.list \
    && apt-get -y update \
    && apt install -y kubectl

RUN usermod -u $HOST_UID jenkins
RUN groupmod -g $HOST_GID docker
RUN usermod -aG docker jenkins

USER jenkins

为了清楚起见,如果您部署到 Kube.netes 或使用 docker-compose,您还需要在容器内安装 kubectl 和 docker-compose。 如果没有,您可以从上面的 Dockerfile 中删除安装。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 docker中的jenkins-无法通过unix:///var/run/docker.sock连接到Docker守护程序。 泊坞窗守护程序正在运行吗? Jenkins 无法连接到 unix:///var/run/docker.sock 上的 Docker 守护进程。 docker 守护进程是否正在运行? 在 docker 容器上运行 Jenkins。无法连接到 unix:///var/run/docker.sock 上的 Docker 守护进程。 docker 守护进程是否正在运行? docker compose in bitbucket - 无法连接到 unix:///var/run/docker.sock 上的 Docker 守护进程。 docker 守护进程是否正在运行? macOS - docker:无法连接到 unix:///var/run/docker.sock 的 Docker 守护程序。 docker 守护程序是否正在运行? docker:无法连接到unix:///var/run/docker.sock上的Docker守护程序。 docker守护程序是否正在运行? docker-compose | 无法连接到 unix:///var/run/docker.sock 上的 Docker 守护进程。 docker 守护进程是否正在运行? docker:无法连接到位于 unix:///var/run/docker.sock 的 Docker 守护进程。 docker 守护程序是否正在运行? "<i>ERROR :Cannot connect to the Docker daemon at unix:\/\/\/var\/run\/docker.sock.<\/i>错误:无法连接到 unix:\/\/\/var\/run\/docker.sock 上的 Docker 守护程序。<\/b> <i>Is the docker daemon running<\/i> docker 守护进程是否正在运行<\/b>" CentOS 7 - 无法连接到 unix:///var/run/docker.sock 处的 Docker 守护程序。 docker 守护程序是否正在运行?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM