Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

414
Visualizações
Error de permisos de Docker en Docker

Tengo una ventana acoplable en la configuración de la ventana acoplable para CI. Esencialmente, la máquina tiene un servidor jenkins CI que usa el mismo socket acoplable de la máquina para crear nodos para CI.

Esto funcionaba muy bien hasta que actualicé Docker recientemente. He identificado el problema, pero parece que no puedo encontrar la magia adecuada para que funcione.

 host $ docker exec -it myjenkins bash jenkins@container $ docker ps Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.26/containers/json: dial unix /var/run/docker.sock: connect: permission denied host $ docker exec -it -u root -it myjenkins bash root@container $ docker ps ... docker ps from host container yay! ...

Así que esto es lo que supongo. Tengo acceso al socket de la ventana acoplable del host desde el contenedor, pero parece que no puedo dar permiso al usuario de jenkins.

Agregué el grupo docker y también agregué el usuario jenkins al grupo docker. Pero sigo teniendo el mismo error. He reiniciado un montón de veces, así que no sé qué hacer a continuación.

¿Hay alguna forma de forzar permisos para un usuario en un socket en particular?

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Debe asignar el gid del grupo docker en su host al gid de un grupo al que pertenece jenkins dentro de su contenedor. Aquí hay una muestra de mi Dockerfile de cómo construí una imagen esclava de jenkins:

 ARG DOCKER_GID=993 RUN groupadd -g ${DOCKER_GID} docker \ && curl -sSL https://get.docker.com/ | sh \ && apt-get -q autoremove \ && apt-get -q clean -y \ && rm -rf /var/lib/apt/lists/* /var/cache/apt/*.bin RUN useradd -m -d /home/jenkins -s /bin/sh jenkins \ && usermod -aG docker jenkins

El 993 resulta ser el gid de la ventana acoplable en el host en este ejemplo, lo ajustaría para que coincida con su entorno.


Solución del OP: si la reconstrucción no es una posibilidad, puede configurar el grupo acoplable en consecuencia al usar la raíz y agregar el usuario. Si intentó esto antes, es posible que deba eliminar el grupo en el esclavo ( groupdel docker ):

 docker exec -it -u root myjenkins bash container $ groupadd -g 993 docker container $ usermod -aG docker jenkins
over 4 years ago · Santiago Trujillo Relatório

0

Como se mencionó en otras respuestas, debe asegurarse de que el usuario "jenkins" dentro del contenedor tenga permiso para emitir comandos Docker al motor Docker en el host a través del montaje /var/run/docker.sock .

Una manera fácil de hacer esto es:

 $ docker run --rm -d --group-add $(stat -c '%g' /var/run/docker.sock) -v /var/run/docker.sock:/var/run/docker.sock -P myjenkins

Pero cuidado:

Si su trabajo de Jenkins tiene la necesidad de ejecutar comandos de construcción/ejecución de Docker (por ejemplo, para construir un contenedor), esto no es suficiente. El motivo es que Jenkins en contenedores le pedirá a Docker en el host que implemente un contenedor de agente de Docker y ese contenedor de agente de Docker enfrentará "errores de permiso" similares cuando se conecte al daemon de Docker en el host.

Hay una publicación de blog que describe el problema y la solución para esto en https://blog.nestybox.com/2019/09/29/jenkins.html .

over 4 years ago · Santiago Trujillo Relatório

0

Personalmente, he tenido que hacer esto:

 sudo gpasswd -a $USER docker

y funcionó

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda