www with hub dockerized jenkins docker centos

hub - jenkins with docker



Jenkins: no se puede conectar con el demonio Docker (4)

Estoy ejecutando a Jenkins y Docker en una máquina CentOS. Tengo un trabajo de Jenkins que atrae a un representante de Github y crea una imagen de Docker. Cuando intento ejecutar el trabajo, aparece el error:

+ docker build -t myProject . Cannot connect to the Docker daemon. Is the docker daemon running on this host? Build step ''Execute shell'' marked build as failure Finished: FAILURE

Esto ocurre aunque haya agregado jenkins a mi grupo de usuarios de la sudo usermod -aG docker jenkins mediante sudo usermod -aG docker jenkins y reinicié mi máquina. ¿Cómo puedo solucionar esto?

Por cierto, si intenta cambiar el comando a sudo docker build -t myProject . Acabo de recibir el error sudo: sorry, you must have a tty to run sudo


@lvthillo, tu respuesta es buena, pero no es suficiente. También es necesario crear el grupo docker. Consulte los pasos posteriores a la instalación de Docker Manage Docker como usuario no root https://docs.docker.com/engine/installation/linux/linux-postinstall/#manage-docker-as-a-non-root-user

para agregar el usuario que ejecuta jenkins al grupo docker.

Por ejemplo, si ejecuta el servidor Jenkins bajo el usuario jenkins :

Paso 1: Crear un grupo Docker

sudo groupadd docker

Paso 2: agrega tu usuario al grupo docker :

sudo usermod -aG docker jenkins

Paso 3: Cierre la sesión y vuelva a iniciarla como jenkins, luego pruebe:

docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

El grupo de docker recibe un tratamiento especial por parte del demonio docker al inicio solo para este propósito. Cualquier usuario en ese grupo ahora puede llamar a la ventana acoplable sin sudo. Usa esto con cuidado.

https://docs.docker.com/engine/security/security/#docker-daemon-attack-surface


Después de la instalación de Jenkins y Docker. Agregar usuario de jenkins a dockergroup (como hiciste tú)

sudo gpasswd -a jenkins docker

Edita el siguiente archivo

vi /usr/lib/systemd/system/docker.service

Y edita esta regla para exponer la API:

ExecStart=/usr/bin/docker daemon -H unix:// -H tcp://localhost:2375

Ahora es el momento de recargar y reiniciar tu demonio Docker

systemctl daemon-reload systemctl restart docker

Luego reinicié jenkins y pude realizar comandos de docker como usuario de jenkins en mis trabajos de jenkins

sudo service jenkins restart


Otra opción es apuntar su host de Jenkins docker a ''unix: ///var/run/docker.sock''

Esto es en lugar de ejecutar el host de docker real y abrirlo.


Tuve el mismo problema con Jenkins.

Lo arreglé agregando /var/run/docker.sock:/var/run/docker.sock en docker-compose.yml:

jenkins: container_name: jenkins build: "jenkins/" ports: - "8080:8080" environment: - JAVA_OPTS:-Djava.awt.headless=true volumes: - /var/jenkins_home - /var/run/docker.sock:/var/run/docker.sock