Où est / var / lib / docker sur Mac / OS X

139

Je cherche le dossier /var/lib/dockersur mon Mac après avoir installé Docker pour Mac.

Avec docker info je reçois

    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
    ....

Mais je n'ai pas d'annuaire /var/lib/dockersur mon hôte.

J'ai vérifié /Users/myuser/Library/Containers/com.docker.docker/mais je n'ai rien trouvé. Une idée de son emplacement?

Christian
la source
8
Il est situé à l'intérieur de la machine virtuelle que le docker instancie pour fournir l'environnement Linux nécessaire.
larsks
1
Serait-ce ce fichier: /Users/myuser/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2
christian
1
C'est l'image disque sous-jacente au vm, oui. Mais si vous voulez vous amuser avec le contenu de ce répertoire, vous devrez vous connecter au vm lui-même. Vous pouvez trouver des instructions pour le faire sur docs.docker.com/v1.8/installation/mac
larsks
thx, augmenter ce fichier fonctionne avec qemu-img redimensionner Docker.qcow2 + 5g forums.docker.com/t
christian
Savez-vous où trouver ce répertoire? @Christian
Jason Xu

Réponses:

50

Voir cette réponse

Lors de l'utilisation de l'application Docker pour Mac, il semble que les conteneurs sont stockés dans la machine virtuelle située à:

~ / Bibliothèque / Containers / com.docker.docker / Data / com.docker.driver.amd64-linux / Docker.qcow2

PeterM
la source
51
Si vous êtes venu ici de Google , faites défiler vers le bas pour trouver la bonne réponse.
user1717828
167

Comme mentionné dans les réponses ci-dessus, vous le trouverez dans:
screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty

Une fois que vous avez lancé le tty, vous pouvez accéder à /var/lib/docker

Mik Jagger
la source
4
une légère modification (sous votre domicile, pas sous la racine): "screen ~ / Library / Containers / com.docker.docker / Data / com.docker.driver.amd64-linux / tty"
pdenti
1
Travaux! Mais comment sortir de ce shell? Ctrl + d, exitet logoutne fonctionnera pas.
thomaskonrad
6
Vous pouvez vous détacher de l'écran avec ctrl + a + d
Mik jagger
13
Le détachement maintiendra toujours la session d'écran en cours d'exécution. Vous pouvez le voir en exécutant screen -ls. Si vous vous êtes déjà détaché, exécutez screen -X quit. Si vous avez plusieurs sessions d'écran, vous devrez -Sspécifier le nom de la session. Si vous ne l'avez pas détaché, appuyez sur ctrl + a,:, q, u, i, t, ENTER. Ces deux-là exécutent simplement la commande de sortie d'écran dans la session.
dosentmatter
15
Je pense qu'il peut être situé dans ~ / Library / Containers / com.docker.docker / Data / vms / 0 / tty maintenant.
Richard Collette
57

Les autres réponses ici sont obsolètes si vous utilisez Docker pour Mac.

Voici comment j'ai pu accéder à la VM. Exécutez la commande:

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

C'est le chemin par défaut, mais vous devrez peut-être d'abord faire: cd ~/Library/Containers/com.docker.docker/Data/vms

puis lspour voir dans quel répertoire se trouve votre VM et remplacez le "0" en conséquence.

Lorsque vous y êtes, vous pouvez voir un écran vide. Appuyez sur votre touche "Entrée".

Cette page explique que pour quitter la VM, vous devez "Ctrl-a" puis "d"

Dmitriy
la source
Cela ne fonctionne pas complètement, car si vous quittez la VM et que vous la saisissez à nouveau, vous obtiendrez un shell déréglé.
AbstractVoid
2
Cela ne fonctionne pas pour moi. Je me retrouve avec une coquille foirée. J'ai parcouru et tué les sessions d'écran précédentes, puis j'ai réessayé. En appuyant sur Entrée, j'obtiens des caractères aléatoires. si vous appuyez à nouveau sur Entrée, de nouveaux caractères aléatoires. Et ainsi de suite
Steig Hallquist
1
pour quitter le programme d'écran, utilisez ctl-a puis ctl- \ /var/lib/dockerest dans la machine virtuelle où vous êtes après l'exécution screen, par exemple, ls /var/lib/dockeretc.
Alexei Martianov
1
Je me suis débarrassé de la coquille en désordre en screen -ls et screen -X -S SESSION_NAME quitpour chaque session. Si vous vous déconnectez avec ctr-A, D vous pouvez également vous reconnecter à l'écran avec screen -Ret obtenir un shell propre.
Andreas Riedmüller le
13

Tout comme @Dmitriy l'a dit:

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

et peut utiliser ctrl a+ dpour détacher l'écran

et utilisez screen -drpour attacher à nouveau l'écran (car si vous attachez simplement l'écran à nouveau, le texte du terminal sera déformé.)

Référence

ou si vous voulez quitter, utilisez ctrl + a+ k, puis choisissez yde tuer l'écran.

Mai
la source
5

un peu que dire d'un fil de zombies, mais comme je viens de le trouver, voici une autre solution qui n'a pas besoin d'écran ni de coquille, etc.

Le chemin répertorié à partir d'un docker volume inspect <vol_name>

renvoie le chemin du conteneur, quelque chose comme:

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

le _datacomposant étant le dernier composant du chemin que vous avez configuré dans la volumes:section du service utilisant un volume donné par exemple:

volumes: - db_data:/var/lib/postgresql/data , votre kilométrage variera.

Pour y arriver sur le mac, la méthode la plus simple que j'ai trouvée est de démarrer un petit conteneur en cours d'exécution et de monter la racine de l'hôte dans le /dockerrépertoire de l'image, cela vous donne accès aux volumes utilisés sur l'hôte.

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

à partir de ce point, vous pouvez accéder au volume

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

lbdl
la source
1

Ce chemin provient de Docker Host (pas de MacOS) avant "Docker pour Mac Application", où se trouvait une VM VirtualBox "par défaut" et à l'intérieur de cette VM, le chemin mentionné existe (à coup sûr), maintenant à l'époque "Docker for Mac Application" il existe une image Docker.qcow2, qui est qemu base vm. Passer à l'intérieur de cette manière VM @ mik-jagger est ok (mais il y en a peu plus)

itiique
la source
0

Je dirais que le fichier:

/var/run/docker.sock

Est en fait à:

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

Si vous exécutez ceci, cela devrait le prouver, tant que votre VirtualBox 5.2.8 ou version ultérieure en cours d'exécution et que le partage pour /Volumes est configuré pour être monté automatiquement et permanent ET que vous avez généré la machine docker par défaut sur cette version 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

Ensuite, accédez à Portainer à: 192.168.99.100:9000 ou localhost: 9000

Djangofan
la source