with tutorial plugin not hub found deploy create jenkins docker boot2docker

tutorial - jenkins push docker hub



Accediendo al host de docker desde el contenedor de(jenkins) docker (3)

Necesito ejecutar los comandos del docker de jenkins que está instalado como un contenedor en la ventana acoplable. Mi configuración local está en un OSX y uso boot2docker para virtualizar el docker.

He instalado jenkins en la ventana acoplable simplemente docker run -d -p 8080:8080 --name jenkins jenkins y funciona bien.

En jenkins, he instalado el "complemento Docker" https://wiki.jenkins-ci.org/display/JENKINS/Docker+Plugin que necesita la URL de DOCKER para acceder a la aplicación docker.

Cuando boot2docker se inicia, obtengo lo siguiente: DOCKER_HOST=tcp://192.168.59.103:2376 , entonces supongo que Docker api se está ejecutando en ese host / por?

En jenkins configuré el campo DOCKER URL como http://192.168.59.103:2376 pero recibo el siguiente error "shaded.org.apache.http.client.ClientProtocolException".

Parece que el contenedor no puede acceder al servidor boot2docker docker. Tal vez me falta algo, pero no puedo descifrar cuál es el puerto / IP correcto que debo usar.

Actualización: Más detalles

This is what I get when I start boot2docker: bash-3.2$ unset DYLD_LIBRARY_PATH ; unset LD_LIBRARY_PATH bash-3.2$ mkdir -p ~/.boot2docker bash-3.2$ if [ ! -f ~/.boot2docker/boot2docker.iso ]; then cp /usr/local/share/boot2docker/boot2docker.iso ~/.boot2docker/ ; fi bash-3.2$ /usr/local/bin/boot2docker init WARNING: The ''boot2docker'' command line interface is officially deprecated. Please switch to Docker Machine (https://docs.docker.com/machine/) ASAP. Docker Toolbox (https://docker.com/toolbox) is the recommended install method. Virtual machine boot2docker-vm already exists bash-3.2$ /usr/local/bin/boot2docker up WARNING: The ''boot2docker'' command line interface is officially deprecated. Please switch to Docker Machine (https://docs.docker.com/machine/) ASAP. Docker Toolbox (https://docker.com/toolbox) is the recommended install method. Waiting for VM and Docker daemon to start... ...............oooooooo Started. Writing /Users/local/.boot2docker/certs/boot2docker-vm/ca.pem Writing /Users/local/.boot2docker/certs/boot2docker-vm/cert.pem Writing /Users/local/.boot2docker/certs/boot2docker-vm/key.pem To connect the Docker client to the Docker daemon, please set: export DOCKER_TLS_VERIFY=1 export DOCKER_HOST=tcp://192.168.59.103:2376 export DOCKER_CERT_PATH=/Users/local/.boot2docker/certs/boot2docker-vm Or run: `eval "$(boot2docker shellinit)"` bash-3.2$ $(/usr/local/bin/boot2docker shellinit) Writing /Users/local/.boot2docker/certs/boot2docker-vm/ca.pem Writing /Users/local/.boot2docker/certs/boot2docker-vm/cert.pem Writing /Users/local/.boot2docker/certs/boot2docker-vm/key.pem bash-3.2$ docker version Client: Version: 1.8.0 API version: 1.20 Go version: go1.4.2 Git commit: 0d03096 Built: Tue Aug 11 17:17:40 UTC 2015 OS/Arch: darwin/amd64 Server: Version: 1.8.0 API version: 1.20 Go version: go1.4.2 Git commit: 0d03096 Built: Tue Aug 11 17:17:40 UTC 2015 OS/Arch: linux/amd64

Aquí va la configuración jenkins para la nube:


Como @ISanych sugiere, simplemente puede hacer -v /var/run/docker.sock:/var/run/docker.sock y también funcionará mágicamente en boot2docker. No es necesario definir DOCKER_URL .

También puede encontrar que el --net=host útil si necesita acceder a los puertos de los contenedores iniciados.


Esto probablemente debería ser un comentario sobre la respuesta anterior, pero eso no parece posible. Esta es solo una nota para recordarle a la gente que escuchar en 0.0.0.0 significa escuchar en cualquier interfaz públicamente enrutable que se pueda conectar a cualquier interfaz de red física o virtual configurada en su sistema. Prudence sugiere limitar su exposición a solo una red interna, menos probabilidades de encontrar fuerzas hostiles con malas intenciones.


Me encontré con exactamente el mismo problema con mi plugin Jenkers docker. Docker usa tls de forma predeterminada, pero el complemento de Docker solo es compatible con http. Lo que hice fue deshabilitar la verificación de TLS en la máquina acopladora. Mi docker es una Ubuntu, por lo que el archivo docker conf se encuentra en /etc/default/docker . Dentro del archivo conf, puede deshabilitar TLS agregando

--tls=false

en DOCKER_OPTS. Algo como:

DOCKER_OPTS=''-H tcp://0.0.0.0:2376 -H unix:///var/run/docker.sock --tls=false''