¿Dónde está / var / lib / docker en Mac / OS X?

138

Estoy buscando la carpeta /var/lib/dockeren mi Mac después de instalar Docker para Mac.

Con lo docker info que consigo

    Containers: 5
     ...
    Server Version: 1.12.0-rc4
    Storage Driver: aufs
     Root Dir: /var/lib/docker/aufs
     Backing Filesystem: extfs
     Dirs: 339
     Dirperm1 Supported: true
    ...
    Name: moby
    ID: LUOU:5UHI:JFNI:OQFT:BLKR:YJIC:HHE5:W4LP:YHVP:TT3V:4CB2:6TUS
    Docker Root Dir: /var/lib/docker
    Debug Mode (client): false
    ....

Pero no tengo un directorio /var/lib/dockeren mi host.

Lo he comprobado /Users/myuser/Library/Containers/com.docker.docker/pero no pude encontrar nada allí. ¿Alguna idea de dónde se encuentra?

cristiano
fuente
8
Se encuentra dentro de la VM que Docker crea instancias para proporcionar el entorno Linux necesario.
larsks
1
Podría ser que del archivo: /Users/myuser/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2
christian
1
Esa es la imagen de disco subyacente a la máquina virtual, sí. Pero si desea curiosear con el contenido de ese directorio, deberá iniciar sesión en el propio VM. Puede encontrar instrucciones para hacerlo en docs.docker.com/v1.8/installation/mac
larsks el
gracias, elevar este archivo funciona con qemu-img redimensionar Docker.qcow2 + 5g forums.docker.com/t/…
christian
¿Sabe dónde encontrar este directorio? @Christian
Jason Xu

Respuestas:

50

Ver esta respuesta

Cuando se usa la aplicación Docker para Mac, parece que los contenedores se almacenan dentro de la VM ubicada en:

~ / Library / Containers / com.docker.docker / Data / com.docker.driver.amd64-linux / Docker.qcow2

PeterM
fuente
51
Si viniste aquí desde Google , desplázate hacia abajo para encontrar la respuesta correcta.
user1717828
167

Como se menciona en las respuestas anteriores, lo encontrará en:
screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty

Una vez que ejecute el tty, puede navegar hasta /var/lib/docker

Mik jagger
fuente
44
una ligera modificación (debajo de su página de inicio, no debajo de la raíz): "screen ~ / Library / Containers / com.docker.docker / Data / com.docker.driver.amd64-linux / tty"
pdenti
1
¡Trabajos! ¿Pero cómo salgo de ese caparazón? Ctrl + d, exity logoutno funcionará.
thomaskonrad
66
Puede despegarse de la pantalla con Ctrl + a + D
Mik jagger
13
La separación aún mantendrá la sesión de pantalla ejecutándose. Puedes ver esto corriendo screen -ls. Si ya te has separado, corre screen -X quit. Si tiene varias sesiones de pantalla, -Sdeberá especificar el nombre de la sesión. Si no se ha separado, presione ctrl + a,:, q, u, i, t, ENTER. Esos dos simplemente ejecutan el comando screen quit en la sesión.
dosentmatter
15
Creo que puede estar ubicado en ~ / Library / Containers / com.docker.docker / Data / vms / 0 / tty ahora.
Richard Collette
57

Las otras respuestas aquí están desactualizadas si está usando Docker para Mac.

Así es como pude ingresar a la VM. Ejecute el comando:

screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty

Esta es la ruta predeterminada, pero es posible que primero deba hacer: cd ~/Library/Containers/com.docker.docker/Data/vms

y luego lspara ver en qué directorio está su VM y reemplazar el "0" en consecuencia.

Cuando estés dentro, es posible que veas una pantalla en blanco. Presiona la tecla "Enter".

Esta página explica que para salir de la VM necesita "Ctrl-a" y luego "d"

Dmitriy
fuente
No funciona por completo, porque si sale de VM e ingresa de nuevo, se desordenará el shell.
AbstractVoid
2
Esto no está funcionando para mí. Termino con un caparazón desordenado. Pasé y maté sesiones de pantalla anteriores y luego intenté nuevamente. Al presionar enter obtengo caracteres aleatorios. si presiona enter nuevamente, nuevos caracteres aleatorios. Y así
Steig Hallquist
1
para salir del programa de pantalla, use ctl-a, luego ctl- \ /var/lib/dockerestá en la VM donde está después de la ejecución screen, por ejemplo, ls /var/lib/dockeretc.
Alexei Martianov
1
Me deshice de la cáscara sucia por screen -lsy después screen -X -S SESSION_NAME quitde cada sesión. Si se desconecta con ctr-A, entonces D puede volver a conectarse a la pantalla screen -Ry obtener un shell limpio también.
Andreas Riedmüller
13

Justo como @Dmitriy dijo:

screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty

y puede usar ctrl a+ dpara separar la pantalla

y úselo screen -drpara volver a adjuntar la pantalla nuevamente (ya que si simplemente vuelve a adjuntar la pantalla, el texto del terminal será confuso).

Referencia

o si desea salir, use ctrl + a+ k, luego elija ymatar la pantalla.

Mayo
fuente
5

algo así como un hilo zombie, pero como acabo de encontrar aquí, hay otra solución que no necesita pantalla ni desorden shell, etc.

La ruta enumerada desde un docker volume inspect <vol_name>

devuelve la ruta para el contenedor, algo como:

"Mountpoint": "/var/lib/docker/volumes/coap_service_db_data/_data"

el _datacomponente es el último componente de la ruta que configuró en la volumes:sección del servicio utilizando un volumen dado, por ejemplo:

volumes: - db_data:/var/lib/postgresql/data , obviamente su kilometraje variará.

Para llegar a Mac, el método más fácil que he encontrado es iniciar un pequeño contenedor ejecutándose y montar la raíz del host en el /dockerdirectorio de la imagen, esto le da acceso a los volúmenes utilizados en el host.

docker run --rm -it -v /:/docker alpine:edge

desde este punto puedes cd al volumen

cd /var/lib/docker/volumes/coap_service_db_data/_data

lbdl
fuente
1

Esta ruta proviene de Docker Host (no de MacOS) antes de los tiempos de "Aplicación Docker para Mac", donde existía un "valor predeterminado" de VirtualBox VM y dentro de esta ruta mencionada de VM (seguro), ahora en tiempos de "Aplicación Docker para Mac" hay una imagen Docker.qcow2, que es qemu base vm. Saltar dentro de esta forma VM @ mik-jagger está bien (pero hay algunos más)

itiic
fuente
0

Yo diría que el archivo:

/var/run/docker.sock

En realidad está en:

/Volumes/{DISKNAME}/var/run/docker.sock

Si ejecuta esto, debería probarlo, siempre y cuando esté ejecutando VirtualBox 5.2.8 o posterior y el /Volumes recurso compartido esté configurado para ser montado de forma automática y permanente Y generó la máquina acoplable predeterminada mientras estaba en esa versión de Virtualbox:

#!/bin/bash
docker run -d --restart unless-stopped -p 9000:9000 \
-v /var/run/docker.sock:/var/run/docker.sock portainer/portainer \
--no-auth

Luego, acceda a Portainer en: 192.168.99.100:9000 o localhost: 9000

djangofan
fuente