Wo ist / var / lib / docker unter Mac / OS X.

138

Ich suche nach dem Ordner /var/lib/dockerauf meinem Mac, nachdem ich Docker für Mac installiert habe.

Mit docker info bekomme ich

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

Aber ich habe kein Verzeichnis /var/lib/dockerauf meinem Host.

Ich habe /Users/myuser/Library/Containers/com.docker.docker/nachgesehen, konnte dort aber nichts finden. Irgendeine Idee, wo es sich befindet?

Christian
quelle
8
Es befindet sich in der VM, die Docker instanziiert, um die erforderliche Linux-Umgebung bereitzustellen.
Larsks
1
Könnte es sein, dass Datei: /Users/myuser/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2
Christian
1
Das ist das Disk-Image, das der VM zugrunde liegt, ja. Wenn Sie sich jedoch mit dem Inhalt dieses Verzeichnisses beschäftigen möchten, müssen Sie sich bei der VM selbst anmelden. Anweisungen dazu finden Sie unter docs.docker.com/v1.8/installation/mac
larsks
thx, das Erhöhen dieser Datei funktioniert mit qemu-img resize Docker.qcow2 + 5g forums.docker.com/t/…
christian
Wissen Sie, wo Sie dieses Verzeichnis finden? @Christian
Jason Xu

Antworten:

50

Siehe diese Antwort

Bei Verwendung von Docker für Mac-Anwendungen werden die Container anscheinend in der VM gespeichert unter:

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

PeterM
quelle
51
Wenn Sie von Google hierher gekommen sind , scrollen Sie nach unten, um die richtige Antwort zu finden.
user1717828
167

Wie in den obigen Antworten erwähnt, finden Sie es in:
screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty

Sobald Sie das tty zum Laufen gebracht haben, können Sie zu navigieren /var/lib/docker

Mik Jagger
quelle
4
eine geringfügige Änderung (unter Ihrem Haus, nicht unter root): "screen ~ / Library / Containers / com.docker.docker / Data / com.docker.driver.amd64-linux / tty"
pdenti
1
Funktioniert! Aber wie verlasse ich diese Shell? Strg + d exitund logoutfunktioniert nicht.
Thomaskonrad
6
Sie können mit Strg + a + d
Mik Jagger
13
Durch das Trennen wird die Bildschirmsitzung weiterhin ausgeführt. Sie können dies sehen, indem Sie ausführen screen -ls. Wenn Sie sich bereits getrennt haben, führen Sie aus screen -X quit. Wenn Sie mehrere Bildschirmsitzungen haben, müssen Sie -Sden Sitzungsnamen angeben. Wenn Sie sich nicht getrennt haben, drücken Sie Strg + a,:, q, u, i, t, ENTER. Diese beiden führen einfach den Befehl zum Beenden des Bildschirms in der Sitzung aus.
Dosentmatter
15
Ich denke, es befindet sich jetzt unter ~ / Library / Containers / com.docker.docker / Data / vms / 0 / tty.
Richard Collette
57

Die anderen Antworten hier sind veraltet, wenn Sie Docker für Mac verwenden.

Hier ist, wie ich in die VM gelangen konnte. Führen Sie den folgenden Befehl aus:

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

Dies ist der Standardpfad, aber möglicherweise müssen Sie zuerst Folgendes tun: cd ~/Library/Containers/com.docker.docker/Data/vms

und dann, um lszu sehen, in welchem ​​Verzeichnis sich Ihre VM befindet, und ersetzen Sie die "0" entsprechend.

Wenn Sie in sind, sehen Sie möglicherweise nur einen leeren Bildschirm. Drücken Sie die Eingabetaste.

Auf dieser Seite wird erläutert, dass Sie zum Beenden der VM "Strg-a" und dann "d" drücken müssen.

Dmitriy
quelle
Funktioniert nicht vollständig, denn wenn Sie die VM beenden und erneut eingeben, wird die Shell durcheinander gebracht.
AbstractVoid
2
Das funktioniert bei mir nicht. Am Ende habe ich eine durcheinandergebrachte Muschel. Ich habe frühere Bildschirmsitzungen durchlaufen und beendet und es dann erneut versucht. Wenn ich die Eingabetaste drücke, erhalte ich zufällige Zeichen. Wenn Sie erneut die Eingabetaste drücken, werden neue zufällige Zeichen angezeigt. Und so weiter
Steig Hallquist
1
Um das Bildschirmprogramm zu beenden, verwenden Sie ctl-a, dann befindet sich ctl- \ /var/lib/dockerin der VM, in der Sie sich nach dem Ausführen befinden screen, z ls /var/lib/docker. B. usw.
Alexei Martianov
1
Ich habe die unordentliche Hülle von screen -lsund dann screen -X -S SESSION_NAME quitfür jede Sitzung losgeworden . Wenn Sie die Verbindung mit Strg-A und D trennen, können Sie die Verbindung zum Bildschirm wieder herstellen screen -Rund eine saubere Hülle erhalten.
Andreas Riedmüller
13

Genau wie @Dmitriy sagte:

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

und kann ctrl a+ verwenden d, um den Bildschirm abzunehmen

und verwenden Sie screen -dr, um den Bildschirm erneut anzuhängen (da der Terminaltext verstümmelt wird, wenn Sie den Bildschirm einfach erneut anhängen.)

Referenz

oder wenn Sie beenden möchten, verwenden Sie ctrl + a+ kund wählen Sie dann, yum den Bildschirm zu beenden.

Kann
quelle
5

etwas wie ein Zombiethread, aber wie ich es gerade hier gefunden habe, ist es eine andere Lösung, die weder Bildschirm benötigt noch Shell usw. durcheinander bringt.

Der Pfad von a docker volume inspect <vol_name>

Gibt den Pfad für den Container zurück, etwa:

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

Die _dataKomponente ist die letzte Komponente des Pfads, den Sie im volumes:Abschnitt des Dienstes unter Verwendung eines bestimmten Volumes eingerichtet haben, z.

volumes: - db_data:/var/lib/postgresql/data , obvs Ihre Laufleistung wird variieren.

Um auf dem Mac dorthin zu gelangen, ist die einfachste Methode, die ich gefunden habe, einen kleinen Container zu starten und das Stammverzeichnis des Hosts in das /dockerVerzeichnis im Image zu mounten. Dadurch erhalten Sie Zugriff auf die auf dem Host verwendeten Volumes.

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

Ab diesem Punkt können Sie auf die Lautstärke cd

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

lbdl
quelle
1

Dieser Pfad stammt vom Docker-Host (nicht von MacOS) vor den Zeiten "Docker für Mac-Anwendungen", in denen eine VirtualBox-VM "Standard" war, und innerhalb dieser VM ist der angegebene Pfad (sicher) vorhanden, jetzt in den Zeiten "Docker für Mac-Anwendungen" Es gibt ein Docker.qcow2-Image, das qemu base vm ist. In diesen VM @ mik-jagger-Weg zu springen ist in Ordnung (aber es gibt nur wenige mehr)

itiic
quelle
0

Ich würde sagen, dass die Datei:

/var/run/docker.sock

Ist eigentlich bei:

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

Wenn Sie dies ausführen, sollte es dies beweisen, solange Sie VirtualBox 5.2.8 oder höher ausführen und die Freigabe für so eingerichtet /Volumes ist, dass sie automatisch bereitgestellt und dauerhaft ist UND Sie die Standard-Docker-Maschine generiert haben, während Sie diese Version von Virtualbox verwendet haben:

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

Greifen Sie dann auf Portainer zu: 192.168.99.100:9000 oder localhost: 9000

Djangofan
quelle