Instalé docker-machine 0.1.0 y docker-compose 1.1.0 en Mac OS 10.8.5.
Docker-machine funciona normalmente y puede conectarse mediante docker-machine ssh.
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM
dev * virtualbox Running tcp://192.168.99.100:2376
Sin embargo, no se puede conectar desde docker-compose.
$ docker-compose up
No se pudo conectar con Docker Daemon en http + unix: //var/run/docker.sock: ¿se está ejecutando?
Si está en una ubicación no estándar, especifique la URL con la variable de entorno DOCKER_HOST.
Mi Dockerfile y docker-compose.yml está aquí.
Dockerfile
FROM centos:centos7
DOCKER_HOST tcp://192.168.99.100:2376
docker-compose.yml
web:
build: .
¿Por qué no puedo conectarme? ¿Algunas ideas?
docker
docker-compose
Escuadrón digital
fuente
fuente
docker-machine
ejecuta como root? Acabo de llegar aquí con el mismo problema en Ubuntu y fueron los permisos en el zócalo:sudo
funcionó.sudo service docker restart
osudo service docker start
lo resolví con esto.Respuestas:
La máquina Docker está funcionando. Pero necesita exportar algún entorno para conectarse a la máquina Docker. Por defecto, el
docker
cliente CLI está intentando comunicarse con el demonio utilizandohttp+unix://var/run/docker.sock
(como se muestra en el mensaje de error).Exporte las variables de entorno correctas utilizando
eval $(docker-machine env dev)
e intente nuevamente. También puede simplemente ejecutardocker-machine env dev
para ver las variables de entorno que exportará. Tenga en cuenta que uno de ellos esDOCKER_HOST
, tal como el mensaje de error sugiere que es posible que deba configurarlo.fuente
eval "$(docker-machine env default)"
) en su bin / postactivate para asegurarse de que siempre esté actualizado.$ eval $(docker-machine env dev) Command 'docker-machine' not found, but can be installed with: sudo snap install docker
Solución simple para mí:
sudo docker-compose up
ACTUALIZACIÓN 2016-3-14: En algún momento del proceso de instalación de docker (¿o docker-compose?) Hay una sugerencia y un ejemplo para agregar su nombre de usuario al grupo "docker". Esto le permite evitar la necesidad de "sudo" antes de todos los comandos de Docker, de esta manera:
Mire cuidadosamente la salida de los comandos de instalación (tanto docker como la segunda instalación para docker-compose) y encontrará el paso necesario. También se documenta aquí: https://subosito.com/posts/docker-tips/
ACTUALIZACIÓN 2017-3-9
Las instrucciones de instalación de Docker se han actualizado aquí.
Pasos posteriores a la instalación para Linux
Esta sección contiene procedimientos opcionales para configurar hosts Linux para que funcionen mejor con Docker.
Administrar Docker como usuario no root
El demonio docker se une a un socket Unix en lugar de a un puerto TCP. Por defecto, el socket Unix es propiedad del usuario root y otros usuarios solo pueden acceder a él usando sudo. El docker daemon siempre se ejecuta como usuario root.
Si no desea usar sudo cuando usa el comando docker, cree un grupo Unix llamado docker y agréguele usuarios. Cuando se inicia el dacker de Docker, el grupo de Docker hace que la propiedad del socket de Unix sea leída / editable.
Para crear el grupo de acopladores y agregar su usuario:
Este comando descarga una imagen de prueba y la ejecuta en un contenedor. Cuando se ejecuta el contenedor, imprime un mensaje informativo y sale.
fuente
newgrp docker
sudo docker-compose up
". Cuando trato de que, consigo:sudo: docker-compose: command not found
Si comenzó a usar Docker
sudo
, debe ejecutar docker-compose consudo
Like:sudo docker-compose up
fuente
sudo docker-compose build
lugar dedocker-compose build
.Por defecto, el demonio
sudo
Docker siempre se ejecuta como usuario root, por lo tanto, debe anteponer sus comandos Docker.Si no desea usar sudo cuando usa el comando docker, cree un grupo Unix llamado docker y agréguele usuarios. Cuando se inicia el dacker de Docker, el grupo de Docker hace que la propiedad del socket de Unix sea leída / editable.
Para crear el grupo de acopladores y agregar su usuario:
Crea el grupo de acopladores.
$ sudo groupadd docker
Agregue su usuario al grupo acoplable.
$ sudo usermod -aG docker $USER
Cierre sesión y vuelva a iniciarla para que su membresía de grupo sea reevaluada.
Verifique que pueda acoplar comandos sin sudo.
$ docker run hello-world
Este comando descarga una imagen de prueba y la ejecuta en un contenedor. Cuando se ejecuta el contenedor, imprime un mensaje informativo y sale.
Los pasos descritos anteriormente provienen de la documentación oficial de Docker .
fuente
docker-compose
como el propietario/usr/local/bin/docker-compose
y luego reiniciar el serviciogroup
se puede actualizar la membresíasu - $USER
para guardar el cierre y cierre de sesiónCuando recibes un error :
La solución sería:
Primero, intente verificar que Docker Service esté en funcionamiento como se esperaba en su máquina remota / local:
sudo service docker status
si no, ejecutar
sudo service docker start
osudo systemctl start docker
(depende de algunas versiones de Linux, consulte las instrucciones de inicio de Docker ).Segundo, inicia docker como sudo
sudo docker-compose up
fuente
sudo systemctl start docker
- para iniciar el servicio Docker.sudo docker-compose up
después de esto.Tengo Fedora 26, y tratando de resolver el mismo problema, eventualmente ingresé a Docker Compose en la página de Desarrolladores de Fedora y luego a Docker en la página de Desarrolladores de Fedora , lo que me ayudó.
Probablemente, el servicio de docker considera que la comunidad comienza con el sistema y se ejecuta en segundo plano todo el tiempo, pero para mí no fue tan obvio, y esa es la razón por la que puedo pensar por qué no hay una respuesta popular como esta.
En la página de Desarrolladores de Fedora hay instrucciones sobre cómo habilitar Docker para comenzar con el sistema:
sudo systemctl enable docker
fuente
systemctl
conlaunchctl
si está ejecutando en Mac.Si está en Linux, es posible que no lo haya
docker-machine
instalado, ya que solo se instala de manera predeterminada en computadoras Windows y Mac.Si es así, deberá dirigirse a: https://docs.docker.com/machine/install-machine/ para encontrar instrucciones sobre cómo instalarlo en su versión de Linux.
Después de la instalación, vuelva a intentar ejecutar
docker-compose up
antes de intentar cualquier cosa mencionada anteriormente.Espero que esto ayude a alguien. Esto funcionó para mi instalación de devilbox en Fedora 25.
fuente
Además de agregar usuarios al grupo acoplable, para evitar escribir
sudo
repetidamente, también puede crear un alias paradocker
comandos como este:fuente
Si está utilizando docker-machine, debe activar el entorno utilizando la variable env . en caso de que no esté usando docker-machine, ejecute sus comandos con sudo
fuente
¿Alguien revisó el registro?
En mi caso, el mensaje de error
/var/log/upstart/docker.log
fue:Vale la pena mencionar que tenía vpn activado, así que:
$ sudo service openvpn stop $ sudo service docker restart $ docker-compose up|start $ sudo service openvpn start
fue la solución.fuente
La respuesta de @srfrnk funciona para mí.
En mi situación, tuve el siguiente archivo docker-compose.yml:
./docker-runtime
propietario y grupo: esroot
el propietario de los otros archivos: mi usuario. Cuando intenté construirnginx
He añadido
./docker-runtime
a.dockerignore
y se resuelve mi problema.fuente
mientras corría
docker-compose pull
- me estaba apareciendo debajo del erroresta corriendo?
solución
problema resuelto
fuente
He tenido los mismos síntomas.
Solo difiere de que sucedió solo durante el
docker-compose build
docker ps
trabajo. Pasó con la versión2.x
, así como3.x
.docker
Servicio reiniciado , luego la máquina ... Incluso reinstaladodocker
+docker-compose
.Intenté todo pero nada ayudó.
Finalmente intenté construir el Dockerfile "manualmente" usando
docker build
.Aparentemente tuve un problema de permiso en un archivo / carpeta dentro del
Docker
contexto. Intentaba leer el contexto al iniciar la compilación y falló con un mensaje de error adecuado. Sin embargo, este mensaje de error no se propagó aldocker-compose
que solo se muestraCouldn't connect to Docker daemon at http+unix://var/run/docker.sock - is it running?
Habiendo descubierto que la solución era simplemente agregar el archivo / carpeta al
.dockerignore
archivo ya que no era necesario para la compilación. Otra solución podría haber sidochown
ochmod
.De todos modos, tal vez esto podría ayudar a alguien a encontrarse con el mismo problema que realmente no tiene nada que ver con
docker
el mensaje de error engañoso que se muestra.fuente
chown
/ lochmod
arreglé. Mensaje de error terrible pero están trabajando en ello. Ver github.com/docker/compose/issues/5318$ sudo docker-componer
Seguí los pasos tal como están en la respuesta anterior para agregar $ USER al docker grupal. no quería agregar un nuevo acoplador de grupo porque en mi instalación de acoplador se creó automáticamente un grupo llamado acoplador.
Docker CE está instalado y en ejecución. Se crea el grupo de acopladores pero no se agregan usuarios. Debe usar sudo para ejecutar los comandos de Docker. Continúe con Linux postinstall para permitir que usuarios sin privilegios ejecuten comandos Docker y para otros pasos de configuración opcionales.
pero usar docker-compose up tampoco funcionó. Dio el mismo error anterior. Entonces, en mi caso (Ubuntu 18.10) sudo docker-compose arregló el problema.
ps: @Tiw gracias por el consejo.
fuente
Sé que es una tontería, pero en mi caso lo intenté
sudo
y funcionó a las mil maravillas.en su caso, solo intente:
$ sudo docker-compose up
fuente
prueba esto:
sudo ln -s / usr / local / bin / docker-compose / usr / bin / docker-compose
fuente
He resuelto el problema siguiendo los siguientes pasos.
ahora docker-compose está funcionando
fuente
Para mí, comencé a actualizar Docker y cancelé a mitad de camino. No noté que Docker no estaba funcionando (si lo estaba, hay un icono en la barra de navegación superior de mi Macbook, por la batería restante, el tiempo, etc.) Una vez que lo inicié y terminé la actualización, ¡
docker-compose up
funcioné nuevamente!fuente
Mi configuración tiene dos casos para este error:
__pycache__
los archivos creados por el usuario root después de ejecutar las pruebas de integración dentro del contenedor son inaccesibles para docker (le dice el problema original) y docker-compose (le informa ambiguamente sobre el host docker);microk8s
bloqueé mi puerto hasta que lo detuve.fuente
Intenta ejecutar
dockerd
o,sudo dockerd
si es necesario, primero para iniciar daemon. Si comienzasdockerd
consudo
tal vez quieras correrdocker-compose up
consudo
también. de lo contrario está bien.Solución de trabajo de https://github.com/docker/compose/issues/4181
fuente
Cerrar sesión y luego volver a ayudarme. En mi caso fue una instalación nueva, creé un nuevo usuario, un nuevo grupo y luego agregué el usuario al grupo de acopladores.
salida salida
luego ssh en el servidor nuevamente
fuente
Lo siguiente funcionó para mí, no estoy seguro de qué parte funcionó:
fuente