¿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?


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


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


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"


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.


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


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)


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

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.