Di mana / var / lib / docker di Mac / OS X

138

Saya mencari folder /var/lib/dockerdi Mac saya setelah menginstal buruh pelabuhan untuk Mac.

Dengan docker info saya dapatkan

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

Tapi saya tidak punya direktori /var/lib/dockerdi host saya.

Saya telah memeriksa /Users/myuser/Library/Containers/com.docker.docker/tetapi tidak dapat menemukan apa pun di sana. Adakah yang tahu di mana lokasinya?

Kristen
sumber
8
Itu terletak di dalam vm yang membuat instantiate buruh pelabuhan untuk menyediakan lingkungan Linux yang diperlukan.
larsks
1
Mungkinkah itu File: /Users/myuser/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2
christian
1
Itu adalah disk image yang mendasari vm, ya. Tetapi jika Anda ingin muck tentang dengan isi direktori itu Anda harus login ke vm itu sendiri. Anda dapat menemukan petunjuk untuk melakukannya di docs.docker.com/v1.8/installation/mac
larsks
thx, mengatur ulang file ini berfungsi dengan qemu-img mengubah ukuran Docker.qcow2 + 5g forums.docker.com/t/…
christian
Apakah Anda tahu di mana menemukan direktori ini? @ Kristen
Jason Xu

Jawaban:

50

Lihat jawaban ini

Saat menggunakan Docker untuk Aplikasi Mac, tampaknya wadah disimpan di dalam VM yang terletak di:

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

PeterM
sumber
51
Jika Anda datang ke sini dari Google , gulir ke bawah untuk menemukan jawaban yang tepat.
user1717828
167

Seperti disebutkan dalam jawaban di atas, Anda akan menemukannya di:
screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty

Setelah menjalankan tty, Anda dapat menavigasi /var/lib/docker

Mik jagger
sumber
4
satu modifikasi ringan (di bawah rumah Anda, bukan di bawah root): "layar ~ / Library / Containers / com.docker.docker / Data / com.docker.driver.amd64-linux / tty"
pdenti
1
Bekerja! Tetapi bagaimana cara saya keluar dari shell itu? Ctrl + d exit,, dan logouttidak akan berfungsi.
thomaskonrad
6
Anda dapat melepaskan dari layar dengan ctrl + a + d
Mik jagger
13
Melepaskan masih akan membuat sesi layar berjalan. Anda dapat melihat ini dengan menjalankan screen -ls. Jika sudah terlepas, jalankan screen -X quit. Jika Anda memiliki beberapa sesi layar, Anda harus -Smenentukan nama sesi. Jika Anda belum terlepas, tekan ctrl + a,:, q, u, i, t, ENTER. Keduanya hanya menjalankan layar keluar dari perintah di sesi.
dosentmatter
15
Saya pikir itu mungkin berada di ~ / Library / Containers / com.docker.docker / Data / vms / 0 / tty sekarang.
Richard Collette
57

Jawaban lain di sini sudah usang jika Anda menggunakan Docker untuk Mac.

Begini caranya saya bisa masuk ke VM. Jalankan perintah:

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

Ini adalah jalur default, tetapi Anda mungkin harus terlebih dahulu melakukannya: cd ~/Library/Containers/com.docker.docker/Data/vms

dan kemudian lsuntuk melihat direktori mana VM Anda berada dan ganti "0" yang sesuai.

Ketika Anda masuk, Anda mungkin hanya melihat layar kosong. Tekan tombol "Enter" Anda.

Halaman ini menjelaskan bahwa untuk keluar dari VM Anda perlu "Ctrl-a" lalu "d"

Dmitriy
sumber
Tidak sepenuhnya berfungsi, karena jika Anda keluar dari VM dan memasukkannya lagi, Anda akan mendapatkan shell kacau.
AbstractVoid
2
Ini tidak bekerja untuk saya. Saya berakhir dengan kulit yang berantakan. Saya telah melewati dan membunuh sesi layar sebelumnya dan kemudian mencoba lagi. Ketika menekan enter saya mendapatkan karakter acak. jika Anda menekan enter lagi, karakter acak baru. Dan seterusnya
Steig Hallquist
1
untuk keluar dari program layar gunakan ctl-a maka ctl- \ /var/lib/dockerada di VM di mana Anda setelah dijalankan screen, jadi misal ls /var/lib/dockerdll.
Alexei Martianov
1
Saya menyingkirkan shell berantakan screen -lsdan kemudian screen -X -S SESSION_NAME quituntuk setiap sesi. Jika Anda memutuskan koneksi dengan ctr-A maka D Anda dapat menghubungkan kembali ke layar dengan screen -Rdan mendapatkan shell yang bersih juga.
Andreas Riedmüller
13

Seperti yang dikatakan @Dmitriy:

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

dan dapat menggunakan ctrl a+ duntuk melepaskan layar

dan gunakan screen -druntuk memasang kembali layar lagi (karena jika Anda cukup memasang layar lagi, teks terminal akan kacau.)

Referensi

atau jika Anda ingin keluar, gunakan ctrl + a+ k, lalu pilih yuntuk mematikan layar.

Mungkin
sumber
5

beberapa apa dari utas zombie tetapi karena saya baru saja menemukannya di sini adalah solusi lain yang tidak perlu layar atau mengacaukan shell dll

Path terdaftar dari a docker volume inspect <vol_name>

mengembalikan jalur untuk wadah, sesuatu seperti:

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

yang _datakomponen menjadi komponen terakhir dari jalan Anda setup di volumes:bagian layanan menggunakan volume misalnya diberikan:

volumes: - db_data:/var/lib/postgresql/data , jarak tempuh obvs Anda akan bervariasi.

Untuk sampai di sana pada mac metode termudah yang saya temukan adalah untuk benar-benar mulai menjalankan wadah kecil dan me-mount root host ke /dockerdirektori pada gambar, ini memberi Anda akses ke volume yang digunakan pada host.

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

dari titik ini Anda dapat melakukan cd ke volume

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

lbdl
sumber
1

Jalur ini berasal dari Docker Host (bukan dari MacOS) sebelum "Docker for Mac Application" kali, di mana ada VirtualBox VM "default" dan di dalam jalur disebutkan VM ada (pasti), sekarang dalam "Docker for Mac Application" kali ada gambar Docker.qcow2, yang merupakan basis qemu vm. Untuk melompat ke dalam cara VM @ mik-jagger ini ok (tetapi ada beberapa lagi)

itiic
sumber
0

Saya akan mengatakan bahwa file tersebut:

/var/run/docker.sock

Sebenarnya di:

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

Jika Anda menjalankan ini, itu harus membuktikannya, selama Anda menjalankan VirtualBox 5.2.8 atau lebih baru dan pembagian untuk /Volumes disetel untuk dipasang secara otomatis dan permanen DAN Anda menghasilkan mesin buruh pelabuhan default saat berada di versi Virtualbox itu:

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

Kemudian, akses Portainer di: 192.168.99.100:9000 atau localhost: 9000

Djangofan
sumber