plugin - error de docker:/var/run/docker.sock: no existe tal archivo o directorio
jenkins docker plugin (11)
Soy nuevo en Docker. Tengo un script de shell que carga datos en impala y quiero un archivo acoplable que se ejecuta construye una imagen y ejecuta el contenedor. Estoy en Mac, he instalado boot2docker y tengo configurada la configuración DOCKER_HOST
.
bash-3.2$ docker info
Containers: 0
Images: 0
Storage Driver: aufs
Root Dir: /mnt/sda1/var/lib/docker/aufs
Dirs: 0
Execution Driver: native-0.2
Kernel Version: 3.15.3-tinycore64
Debug mode (server): true
Debug mode (client): false
Fds: 10
Goroutines: 10
EventsListeners: 0
Init Path: /usr/local/bin/docker
Sockets: [unix:///var/run/docker.sock tcp://0.0.0.0:2375]
Estoy intentando simplemente instalar una imagen preconstruida usando:
sudo docker pull busybox
Me sale este error:
sudo docker pull busybox 2014/08/18 17:56:19 Post http:///var/run/docker.sock/images/create?fromImage=busybox&tag=: dial unix /var/run/docker.sock: no such file or directory
¿Hay algún problema con la configuración de mi docker?
Cuando hago un docker pull busybox
, tira de la imagen y se completa la descarga.
bash-3.2$ docker pull busybox
Pulling repository busybox
a9eb17255234: Download complete
fd5373b3d938: Download complete
d200959a3e91: Download complete
37fca75d01ff: Download complete
511136ea3c5a: Download complete
42eed7f1bf2a: Download complete
c120b7cab0b0: Download complete
f06b02872d52: Download complete
120e218dd395: Download complete
1f5049b3536e: Download complete
bash-3.2$ docker run busybox /bin/echo Hello Doctor
Hello Doctor
¿Me estoy perdiendo de algo?
El primer /var/run/docker.sock se refiere a la misma ruta en su máquina virtual boot2docker. Correcly escribe para windows /var/run/docker.sock
En Linux, antes que nada, ejecute sudo service docker start
en la terminal.
En mi MAC cuando inicio boot2docker-vm en la terminal usando
boot2docker start
Veo lo siguiente
To connect the Docker client to the Docker daemon, please set:
export DOCKER_CERT_PATH=
export DOCKER_TLS_VERIFY=1
export DOCKER_HOST=tcp://:2376
Después de establecer estas variables de entorno, pude ejecutar la compilación sin el problema.
Actualización [2016-04-28] Si está utilizando las versiones recientes de la ventana acoplable, puede hacer
eval $(docker-machine env)
configurará el entorno
( docker-machine env
imprimirá las declaraciones de exportación)
No necesita ejecutar ningún comando de boot2docker
como sudo
cuando usa boot2docker
ya que cada comando pasado a la VM boot2docker
ejecuta como raíz de forma predeterminada.
Está viendo el error cuando se ejecuta como sudo
porque sudo
no tiene el DOCKER_HOST
env DOCKER_HOST
, solo su usuario sí lo hace.
Puede confirmar esto haciendo un:
$ env
Entonces un
$ sudo env
Y buscando DOCKER_HOST
en cada salida.
En cuanto a tener un archivo acoplable que ejecuta su secuencia de comandos, algo como esto podría funcionar para usted:
Dockerfile
FROM busybox
# Copy your script into the docker image
ADD /path/to/your/script.sh /usr/local/bin/script.sh
# Run your script
CMD /usr/local/bin/script.sh
Entonces puedes ejecutar:
docker build -t your-image-name:your-tag .
Esto construirá su imagen del acoplador, que puede ver al hacer un:
docker images
Luego, para ejecutar su contenedor, puede hacer una:
docker run your-image-name:your-tag
Este comando ejecutará un contenedor desde la imagen que creó con su Dockerfile
y su comando de compilación y luego terminará una vez que su script.sh
haya terminado de ejecutarse.
Para boot2docker en Windows, después de ver:
FATA[0000] Get http:///var/run/docker.sock/v1.18/version:
dial unix /var/run/docker.sock: no such file or directory.
Are you trying to connect to a TLS-enabled daemon without TLS?
Todo lo que hice fue:
boot2docker start
boot2docker shellinit
Eso generó:
export DOCKER_CERT_PATH=C:/Users/vonc/.boot2docker/certs/boot2docker-vm
export DOCKER_TLS_VERIFY=1
export DOCKER_HOST=tcp://192.168.59.103:2376
Finalmente:
boot2docker ssh
Y Docker funciona de nuevo
Para configurar su entorno y guardarlo para las sesiones futuras, puede hacer:
echo ''export DOCKER_HOST="tcp://$(boot2docker ip 2>/dev/null):2375";'' >> ~/.bashrc
Entonces: source ~/.bashrc
Y su entorno estará configurado en cada sesión
Puede configurar rápidamente su entorno con shellinit
En su símbolo del sistema ejecute:
$(boot2docker shellinit)
Eso poblará y exportará las variables de entorno e inicializará otras características.
Si está utilizando CentOS 7 y ha instalado Docker a través de yum, no olvide ejecutar:
$ sudo systemctl start docker
$ sudo systemctl enable docker
Esto iniciará el servidor, y lo reiniciará automáticamente al arrancar.
También recibí este error. Sin embargo, no utilicé boot2docker sino que simplemente instalé la ventana acoplable "simple" en Ubuntu (vea docs.docker.com/installation/ubuntulinux ).
Obtuve el error ("marque unix /var/run/docker.sock: no existe dicho archivo o directorio. ¿Está intentando conectarse a un daemon habilitado para TLS sin TLS?") Porque el daemon docker aún no se estaba ejecutando .
En Ubuntu, necesitas iniciar el servicio :
sudo service docker start
Ver también http://blog.arungupta.me/resolve-dial-unix-docker-sock-error-techtip64
Usted, tal vez no sea el OP, pero alguien puede tener un directorio llamado /var/run/docker.sock/
ya debido a la cantidad de veces que hackea y corta para hacer las cosas bien con Docker (especialmente noobs). Borre ese directorio y vuelva a intentarlo.
Esto me ayudó en mi camino para lograr que funcione en Centos 7.
docker pull
fallará si el docker service
no se está ejecutando. Asegúrate de que esté funcionando
:~$ ps aux | grep docker
root 18745 1.7 0.9 284104 13976 ? Ssl 21:19 0:01 /usr/bin/docker -d
Si no se está ejecutando, puede iniciarlo
sudo service docker start
Para Ubuntu 15 y uso superior
sudo systemctl start docker