Solución:
De forma predeterminada, el demonio de la ventana acoplable utilizará el socket Unix unix:///var/run/docker.sock
(puede comprobar que este es su caso haciendo un sudo netstat -tunlp
y tenga en cuenta que no hay ningún proceso de demonio docker escuchando en ningún puerto). Se recomienda mantener esta configuración por razones de seguridad, pero parece que Riak requiere que el demonio se ejecute en un socket TCP.
Para iniciar el demonio de la ventana acoplable con un socket TCP al que cualquiera pueda conectarse, use el -H
opción:
sudo docker -H 0.0.0.0:2375 -d &
Advertencia: Esto significa que las máquinas que pueden hablar con el demonio a través de ese socket TCP pueden obtener acceso de root a su máquina host.
Documentos relacionados:
http://basho.com/posts/technical/running-riak-in-docker/
https://docs.docker.com/install/linux/linux-postinstall/#configure-where-the-docker-daemon-listens-for-connections
- Prepare un archivo de configuración adicional. Crea un archivo llamado
/etc/systemd/system/docker.service.d/docker.conf
. Dentro del archivodocker.conf
, pegue debajo del contenido:
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
Tenga en cuenta que si no hay un directorio como
docker.service.d
o un archivo llamadodocker.conf
entonces deberías crearlo.
-
Reinicie Docker. Después de guardar este archivo, vuelva a cargar la configuración
systemctl daemon-reload
y reinicie Docker porsystemctl restart docker.service
. -
Compruebe su demonio de Docker. Después de reiniciar el servicio Docker, puede ver el puerto en la salida de
systemctl status docker.service
igual que/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock
.
Espero que esto pueda ayudar
¡Gracias!
Documentos de referencia de Docker: https://docs.docker.com/install/linux/linux-postinstall/#configure-where-the-docker-daemon-listens-for-connections
Existen 2 formas de configurar el puerto del demonio docker
1) Configuración en / etc / default / docker expediente:
DOCKER_OPTS="-H tcp://127.0.0.1:5000 -H unix:///var/run/docker.sock"
2) Configuración en /etc/docker/daemon.json:
{
"debug": true,
"hosts": ["tcp://127.0.0.1:5000", "unix:///var/run/docker.sock"]
}
Si el socket predeterminado de Docker no está configurado, Docker esperará un período infinito.
Waiting for /var/run/docker.sock
Waiting for /var/run/docker.sock
Waiting for /var/run/docker.sock
Waiting for /var/run/docker.sock
Waiting for /var/run/docker.sock
NOTA : PERO NO CONFIGURAR AMBOS ARCHIVOS DE CONFIGURACIÓN, puede ocurrir el siguiente error:
Waiting for /var/run/docker.sock
unable to configure the Docker daemon with file /etc/docker/daemon.json: the following directives are specified both as a flag and in the configuration file: hosts: (from flag: [tcp://127.0.0.1:5000 unix:///var/run/docker.sock], from file: tcp://127.0.0.1:5000)
La razón para agregar tanto el puerto de usuario[ tcp://127.0.0.1:5000] y zócalo de la ventana acoplable predeterminado[unix:///var/run/docker.sock] es que el puerto de usuario permite el acceso a las API de la ventana acoplable, mientras que el socket predeterminado habilita la CLI. En caso de que el puerto predeterminado[unix:///var/run/docker.sock] no se menciona en el archivo / etc / default / docker, puede ocurrir el siguiente error:
# docker ps
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
Este error no se debe a que la ventana acoplable no se esté ejecutando, sino a que el conector de la ventana acoplable predeterminado no está habilitado.
Una vez que la configuración esté habilitada, reinicie el servicio de la ventana acoplable y verifique que el puerto de la ventana acoplable esté habilitado o no:
# netstat -tunlp | grep -i 5000
tcp 0 0 127.0.0.1:5000 0.0.0.0:* LISTEN 31661/dockerd
Aplicable a la versión 17.04 de Docker, puede variar con las diferentes versiones de Docker.