Dove si trova / var / lib / docker su Mac / OS X


138

Sto cercando la cartella /var/lib/dockersul mio Mac dopo aver installato la finestra mobile per Mac.

Con docker info ottengo

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

Ma non ho una directory /var/lib/dockersul mio host.

Ho controllato /Users/myuser/Library/Containers/com.docker.docker/ma non sono riuscito a trovare nulla lì. Qualche idea su dove si trova?


8
Si trova all'interno di VM che la finestra mobile crea un'istanza per fornire l'ambiente Linux necessario.
Larsks,

1
Potrebbe essere che File: /Users/myuser/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2
christian

1
Questa è l'immagine del disco alla base di VM, sì. Ma se vuoi scherzare con il contenuto di quella directory, dovrai accedere al VM stesso. Puoi trovare le istruzioni per farlo su docs.docker.com/v1.8/installation/mac
larsks

grazie, il ridimensionamento di questo file funziona con il ridimensionamento di qemu-img Docker.qcow2 + 5g forum.docker.com/t/…
christian

Sai dove trovare questa directory? @Christian
Jason Xu

Risposte:


50

Vedi questa risposta

Quando si utilizza l'applicazione Docker per Mac, sembra che i contenitori siano archiviati nella VM situata in:

~ / Library / Contenitori / com.docker.docker / dati / com.docker.driver.amd64-linux / Docker.qcow2


51
Se sei venuto qui da Google , scorri verso il basso per trovare la risposta giusta.
user1717828

167

Come menzionato nelle risposte sopra, lo troverai in:
screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty

Una volta che hai il tty in esecuzione puoi navigare verso /var/lib/docker


4
una leggera modifica (sotto casa, non sotto root): "screen ~ / Library / Containers / com.docker.docker / Data / com.docker.driver.amd64-linux / tty"
pdenti

1
Lavori! Ma come esco da quella shell? Ctrl + d, exite logoutnon funzionerà.
thomaskonrad

6
Puoi staccarti dallo schermo con ctrl + a + d
Mik jagger

13
Il distacco manterrà comunque attiva la sessione dello schermo. Puoi vederlo correndo screen -ls. Se ti sei già staccato, corri screen -X quit. Se hai più sessioni dello schermo, dovrai -Sspecificare il nome della sessione. Se non hai rimosso, premi ctrl + a,:, q, u, i, t, ENTER. Quei due hanno appena eseguito il comando di chiusura dello schermo nella sessione.
dosentmatter,

15
Penso che possa trovarsi in ~ / Library / Containers / com.docker.docker / Data / vms / 0 / tty ora.
Richard Collette,

57

Le altre risposte qui non sono aggiornate se si utilizza Docker per Mac.

Ecco come sono riuscito a entrare nella VM. Esegui il comando:

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

Questo è il percorso predefinito, ma potresti dover prima fare: cd ~/Library/Containers/com.docker.docker/Data/vms

e quindi lsper vedere in quale directory si trova la tua VM e sostituire lo "0" di conseguenza.

Quando ci sei, potresti semplicemente vedere una schermata vuota. Premi il tasto "Invio".

Questa pagina spiega che per uscire dalla VM è necessario "Ctrl-a" quindi "d"


Non funziona completamente, perché se si esce dalla VM e si immette di nuovo, si otterrà una shell incasinata.
AbstractVoid

2
Questo non funziona per me. Finisco con una shell incasinata. Ho attraversato e ucciso sessioni precedenti sullo schermo e poi riprovato. Quando premo invio ottengo caratteri casuali. se premi di nuovo invio, nuovi personaggi casuali. E così via
Steig Hallquist,

1
per uscire dal programma dello schermo usa ctl-a, quindi ctl- \ /var/lib/dockerè nella VM dove sei dopo l'esecuzione screen, quindi ad es ls /var/lib/docker. ecc.
Alexei Martianov

1
Mi sono sbarazzato del guscio disordinato da screen -lse poi screen -X -S SESSION_NAME quitper ogni sessione. Se ti disconnetti con ctr-A, allora D puoi riconnetterti allo schermo con screen -Re ottenere anche una shell pulita.
Andreas Riedmüller,

13

Proprio come ha detto @Dmitriy:

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

e può usare ctrl a+ dper staccare lo schermo

e utilizzare screen -drper ricollegare nuovamente lo schermo (poiché se si collega semplicemente di nuovo lo schermo, il testo del terminale verrà confuso).

Riferimento

o se vuoi uscire, usa ctrl + a+ k, quindi scegli ydi uccidere lo schermo.


5

un po 'che dire di un thread di zombi, ma come ho appena trovato qui c'è un'altra soluzione che non ha bisogno di schermo né rovina shell ecc.

Il percorso elencato da a docker volume inspect <vol_name>

restituisce il percorso per il contenitore, qualcosa del tipo:

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

il _datacomponente è l'ultimo componente del percorso impostato nella volumes:sezione del servizio utilizzando un determinato volume, ad esempio:

volumes: - db_data:/var/lib/postgresql/data , obvs il tuo chilometraggio varierà.

Per arrivarci sul Mac il metodo più semplice che ho trovato è quello di avviare effettivamente un piccolo contenitore in esecuzione e montare la radice dell'host sulla /dockerdirectory nell'immagine, questo ti dà accesso ai volumi utilizzati sull'host.

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

da questo punto è possibile eseguire il cd al volume

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


1

Questo percorso proviene dall'host Docker (non da MacOS) prima dei tempi "Docker per applicazione Mac", dove si trovava una VM "predefinita" in VirtualBox e all'interno di questo percorso VM menzionato esiste (di sicuro), ora in "Docker per applicazione Mac" volte c'è un'immagine Docker.qcow2, che è qemu base vm. Saltare dentro questo modo VM @ mik-jagger è ok (ma ce ne sono pochi altri)


0

Direi che il file:

/var/run/docker.sock

Attualmente è a:

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

Se lo esegui, dovrebbe dimostrarlo, purché VirtualBox 5.2.8 o successivo sia in esecuzione e la condivisione per /Volumes sia impostata per essere montata automaticamente e permanente E hai generato la finestra mobile predefinita mentre ti trovi su quella versione di 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

Quindi, accedere a Portainer all'indirizzo: 192.168.99.100:9000 o localhost: 9000

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.