ubuntu - sock - docker permission denied pycharm
Docker:/var/run/docker.sock: no existe tal archivo o directorio (2)
Ejecuto una infraestructura Mesos / Marathon completamente cargada en CoreOS. Si desea ver las definiciones del servicio systemd
, siéntase libre ...
Creo que te falta pasar el conector Unix Docker y los cgroups
a tu contenedor esclavo, ver
Docker ejecutar comando:
docker run -d /
-v /sys/fs/cgroup:/sys/fs/cgroup /
-v /usr/bin/docker:/usr/bin/docker:ro /
-v /var/run/docker.sock:/var/run/docker.sock /
[your other options] /
192.168.0.38:5000/mesos-slave:prod
Personalmente, también correría otro contenedor separado para Marathon, en lugar de tenerlo en la misma imagen que el Mesos Master, pero eso puede ser una cuestión de gusto.
Infra
Estoy intentando configurar un meso <-> maratón de clúster distribuyendo contenedores. En mi servidor principal tengo:
- cuidador de zoo
- docker registry v2 (port 5000) wo credenciales
- un contenedor con supervisord + mesos + maratón
Además, tengo un esclavo (en el mismo servidor).
$docker ps
192.168.0.38:5000/mesos-slave:prod mesos-slave-1
192.168.0.38:5000/mesos-master:generic mesos-master
jplock/zookeeper 0.0.0.0:2181->2181/tcp, 0.0.0.0:2888->2888/tcp, 0.0.0.0:3888->3888/tcp nostalgic_visvesvaraya
registry:2 0.0.0.0:5000->5000/tcp registry
Problema
Mi problema es que no puedo tener maratón enviando una imagen de portón al esclavo.
Creo que esto proviene de la configuración del esclavo.
$ docker exec -ti mesos-slave-1 /bin/bash
root@xw8600-Workstation:/# docker info
Get http:///var/run/docker.sock/v1.19/info: dial unix /var/run/docker.sock: no such file or directory. Are you trying to connect to a TLS-enabled daemon without TLS?
El problema está en {marcar unix /var/run/docker.sock: no existe tal archivo o directorio}.
Archivo Docker del esclavo
El archivo Docker para el esclavo se parece más o menos así:
FROM 192.168.0.38:5000/supervisor:prod
RUN apt-get -y --fix-missing update
RUN apt-get install -y --force-yes mesos
#Mesos
RUN echo ''docker,mesos'' > /etc/mesos-slave/containerizers
RUN echo ''5mins'' > /etc/mesos-slave/executor_registration_timeout
COPY mesos-slave.conf /etc/supervisor/conf.d/mesos-slave.conf
CMD supervisord -c /etc/supervisor.conf
El mesos-slave.conf se ve así:
[program:mesos-slave]
command=mesos-slave --master=%(ENV_MASTER)s --ip=%(ENV_IP)s --hostname=%(ENV_HOSTNAME)s --resources=%(ENV_RESOURCES)s --attributes=%(ENV_ATTRIBUTES)s --port=%(ENV_SLAVE_PORT)s --log_dir=/etc/mesos/logs --containerizers=docker,mesos --no-switch_user
Siempre recibo el mismo error en el registro de errores. Ejemplo para extraer rstudio:
failed to start: Failed to ''docker -H unix:///var/run/docker.sock pull 192.168.0.38:5000:rocker/rstudio'': exit status = exited with status 1 stderr = Post http:///var/run/docker.sock/v1.19/images/create?fromImage=192.168.0.38%3A5000%3Arocker%2Frstudio%3Alatest: dial unix /var/run/docker.sock: no such file or directory. Are you trying to connect to a TLS-enabled daemon without TLS?
Qué hago mal ?
Editar
Parece que no puedo iniciar Docker
root@xw8600-Workstation:/var/log/upstart# sudo /etc/init.d/docker status
* Docker is not running
root@xw8600-Workstation:/var/log/upstart# sudo /etc/init.d/docker start
* Starting Docker: docker
...done.
root@xw8600-Workstation:/var/log/upstart# sudo /etc/init.d/docker status
* Docker is not running
Editar 2
Siguiendo mi pregunta aquí : tengo un mesos esclavo (v1.7) en el que trato de conseguir una ventana acoplable en la ventana acoplable. Cuando estoy dentro del contenedor, obtengo el siguiente registro de error:
$ cat /var/log/docker.log
time="2015-10-17T12:27:40.963674511Z" level=fatal msg="Error starting daemon: error initializing graphdriver: operation not permitted"
No puedo encontrar mucha información en internet, aquí hay algunas preguntas similares:
No puede reiniciar la ventana acoplable dentro de un contenedor acoplable. Puede ejecutar la ventana acoplable dentro de los contenedores acoplables ¿ Pero reiniciando? (Corrígeme si estoy equivocado)
Básicamente, está deteniendo el daemon docker en su contenedor ''xw8600-Workstation'', mientras que el contenedor está utilizando el mismo daemon de docker.
Una mejor arquitectura es simplemente tener su mesos-esclavo en una VM simple o bare-metal, luego ejecute su daemon docker allí y deje que mesos / marathon administre sus recursos a través de Docker. Espero que tenga sentido.