Saya berhasil menemukan wadah di bawah direktori /var/lib/docker/containers
, tetapi saya tidak dapat menemukan gambar.
Apa direktori dan file di bawah /var/lib/docker
?
docker
docker-image
nemo
sumber
sumber
Jawaban:
Isi
/var/lib/docker
direktori bervariasi tergantung pada driver yang digunakan Docker untuk penyimpanan .Secara default ini akan
aufs
tetapi dapat jatuh kembali keoverlay
,overlay2
,btrfs
,devicemapper
atauzfs
tergantung pada dukungan kernel Anda. Di sebagian besar tempat ini akanaufs
tetapi RedHats pergi dengandevicemapper
.Anda dapat secara manual mengatur driver penyimpanan dengan opsi
-s
atau--storage-driver=
ke daemon Docker ./var/lib/docker/{driver-name}
akan berisi penyimpanan khusus driver untuk konten gambar./var/lib/docker/graph/<id>
sekarang hanya berisi metadata tentang gambar, di filejson
danlayersize
.Dalam hal
aufs
:/var/lib/docker/aufs/diff/<id>
memiliki isi file gambar./var/lib/docker/repositories-aufs
adalah file JSON yang berisi informasi gambar lokal. Ini dapat dilihat dengan perintahdocker images
.Dalam hal
devicemapper
:/var/lib/docker/devicemapper/devicemapper/data
menyimpan gambar/var/lib/docker/devicemapper/devicemapper/metadata
metadatasumber
docker info
dan temukan lokasi aktual khusus untuk pengaturan Anda .Docker for Mac
dengan 2 gambar masing-masing 1,5 GB dan/var/lib
tidak memiliki direktoridocker
.Saat menggunakan Docker untuk Aplikasi Mac, tampaknya wadah disimpan di dalam VM yang terletak di:
UPDATE (Atas perkenan mmorin ):
Pada 15 Januari 2019 tampaknya hanya ada file ini:
yang berisi Disk Docker dan semua gambar dan wadah di dalamnya.
sumber
ubuntu
,nginx
), atau apakah ini lokasi untuk semua wadah? Pertanyaan aslinya meminta gambar , bukan wadah ...Docker for Mac
dua gambar masing-masing 1,5 GB dan~/Library/Containers/Data/com.docker.docker/Data
tidak memiliki direktoricom.docker.driver.amd64-linux
dan satu-satunya file besarvms/0/Docker.raw
dengan 3,6 GB.du -hd1 ~/Library/Containers/com.docker.docker/Data/
ini adalah cara lama, sekarang telah berubah. Abaikan jawaban ini pada 2019
Dalam kasus khusus Mac OS X atau Windows, menggunakan boot2docker, gambar Docker Anda disimpan dalam VM VirtualBox yang dikelola oleh boot2docker.
VM ini akan disimpan di tempat normal gambar VirtualBox:
OS X:
~/VirtualBox VMs/boot2docker-vm
Windows:
%USERPROFILE%/VirtualBox VMs/boot2docker-vm
Anda dapat meresetnya dengan menjalankan (PERINGATAN: Ini akan menghancurkan semua gambar yang Anda buat dan unduh sejauh ini):
Ini sangat berguna jika Anda menyimpan banyak gambar perantara saat membangun / men-debug bangunan tanpa opsi --rm yang berguna, saya kutip di sini untuk referensi: Gunakan:
dari pada:
sumber
%USERPROFILE%\.docker\machine\machines
(harap catat perhentian penuh di path)C:\Users\Public\Documents\Hyper-V\Virtual hard disks\MobyLinuxVM.vhdx
Sebenarnya, gambar Docker disimpan dalam dua file seperti yang ditunjukkan oleh perintah berikut
sumber
docker info
sangat berguna, tetapi outputDocker Root Dir: /var/lib/docker
tidak menunjukkan lokasi penyimpanan gambar (lihat jawaban spesifik Mac di atas).Pada 'Docker untuk Windows' yang baru dirilis, yang menggunakan Hyper-V, data terletak di hard disk virtual Docker:
Anda juga dapat membuka 'Hyper-V Manager' untuk akses ke Docker / MobyLinuxVM.
sumber
C:\ProgramData\docker\windowsfilter
untuk saya. Info lebih lanjut: stackoverflow.com/a/39971954/188740Gambar disimpan di
/var/lib/docker/graph/<id>/layer
.Perhatikan bahwa gambar hanya berbeda dari gambar induk. ID induk disimpan dengan metadata gambar
/var/lib/docker/graph/<id>/json
.Saat Anda
docker run
gambar. AUFS akan 'menggabungkan' semua lapisan menjadi satu sistem file yang dapat digunakan.sumber
Di Ubuntu Anda dapat "bermain" dengan gambar yang sedang berjalan
Sebenarnya, gambar disimpan di dalam
/var/lib/docker/aufs/diff
sumber
Untuk seseorang yang menggunakan kotak alat Docker (yang menggunakan mesin docker), jawaban tentang boot2docker pada Mac OS X tidak valid. VM docker-machine disebut "default" dan ada di
/Users/<username>/.docker/machine/machines/default/
direktori.sumber
Di Docker untuk Windows ( Windows asli) penyimpanan kontainer default adalah di:
sumber
docker build
perintah & saya tidak melihat file yang saya pikir adalah file gambar. Saya melihat beberapa folder dan beberapa file teks (mis. Service.txt). Apa jenis file & dengan ekstensi file apa yangdocker build
dibuat?Jika Anda menggunakan Docker untuk MAC (tidak
boot2docker
) maka lokasinya adalah/Users/<</>UserName></>/Library/Containers/com.docker.docker/Data/
sumber
jasper@~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux $ ls -lh | grep Docker -rw-r--r--@ 1 jasper staff 6.3G May 25 19:20 Docker.qcow2
Saya menemukan gambar. Tapi itu bukan wadahnya. Jangan melihat mereka di direktori Data ini benar-benar ..Seperti yang dijawab di sini , jika Anda menggunakan Mac, ia berada di
sumber
Memperluas jawaban Tristan, di Windows dengan Hyper-V Anda dapat memindahkan gambar dengan langkah - langkah ini dari matthuisman:
sumber
docker build
perintah. Saya menggunakan komputer Windows 10. Saya mencari di C: \ Users \ Public \ Documents \ Hyper-V \ Virtual hard disk, tetapi yang saya lihat adalah MobyLinuxVM.vhdx. Di mana gambar sebenarnya disimpan?Jika Anda ingat bahwa Docker masih berjalan di VM, jalur sistem relatif terhadap VM dan bukan dari sistem Mac Osx. Seperti dikatakan semua terkandung dalam file VM:
Cobalah untuk menjalankan gambar Alpine dengan opsi volume ini dan perintah ls Anda dapat membuat daftar host VM:
Setelah ini coba saja:
Sekarang, Anda dapat mendaftar folder buruh pelabuhan dari host VM
sumber
Saya menggunakan boot2docker untuk Docker di Mac OSX, jadi gambar disimpan ke dalam
/Users/<USERNAME>/VirtualBox VMs/boot2docker-vm/boot2docker-vm.vmdk
.sumber
Saya bisa menjawab pertanyaan ini hanya untuk pengguna Ubuntu:
Direktori root dari buruh pelabuhan dapat ditemukan ketika Anda menjalankan perintah
docker info
Direktori Docker akan diberikan di baris ini: "
Docker Root Dir: /var/lib/docker
"Tentang gambar buruh pelabuhan, mereka disimpan di dalam direktori buruh pelabuhan:
/var/lib/docker/aufs/diff/
Ingat hal-hal ini tidak sama di semua versi buruh pelabuhan. Saat ini, saya menggunakan 1.12.3.
sumber
Gunakan
docker info
perintah untuk menampilkan informasi seluruh sistem dan lokasi dapat bervariasi.Ini adalah contoh di Ubuntu (lihat Root Dir ):
Dan inilah contohnya pada Travis CI (lihat Docker Root Dir ):
Anda dapat menggunakan
--format
parameter untuk mengekstrak informasi itu ke dalam satu file, misalnyaatau:
sumber
Di Docker untuk Windows, log ada di sini:
%USERPROFILE%\AppData\Local\Docker
sumber
periksa folder buruh pelabuhan di
/var/lib
gambar disimpan di lokasi di bawah ini:
sumber
/var/lib/docker/image/overlay2/
. Juga perhatikan bahwa ini adalah kasus karena fakta bahwa mesin Docker Anda gunakanoverlay2
sebagai Driver Penyimpanan.gunakan
docker inspect container_id
folder temukan di bawah MergedDir
sumber
Untuk "Docker Desktop", klik ikon tray system docker dan klik "Pengaturan".
Pada tab Lanjut, Anda dapat melihat lokasi gambar disk.
sumber
Lingkungan: Windows 10 Pro, docker desktop 2.0.3.0 edge
klik kanan ikon buruh pelabuhan di baki sistem, pilih pengaturan - lanjutan:
Lokasi gambar disk (dapat diedit melalui browser):
C: \ Users \ Public \ Documents \ Hyper-V \ Virtual Hard Disk \ DockerDesktop.vhdx
(ada di sana - Direktori dokumen disembunyikan)
sumber
docker build
perintah?sumber
Di Fedora, Docker menggunakan LVM untuk penyimpanan jika tersedia. Pada sistem saya
docker info
menunjukkan:Dalam hal ini, untuk meningkatkan penyimpanan, Anda harus menggunakan alat baris perintah LVM atau manajer partisi yang kompatibel seperti blivet .
sumber
Di Windows 2016, buruh pelabuhan (DockerMsftProvider) menggunakan folder "windowsfilter" di bawah akar buruh pelabuhan
Ia menggunakan folder "tmp" di bawah docker root untuk mengunduh file dan menghapus file setelah mengekstrak file yang diunduh ke folder "windowsfilter".
sumber
Pada Debian Unstable / Sid,
docker info
untuk menemukan informasi seluruh sistem.gambar disimpan di
/var/lib/docker/image/overlay2/imagedb/content
danwadah disimpan di
/var/lib/docker/containers
versi buruh pelabuhan
18.06.0-ce
, versi API1.38
sumber
Saya tidak dapat menyelesaikan pertanyaan dengan Docker versi 18.09 di Macos menggunakan jawaban di atas dan mencoba lagi.
Satu-satunya solusi aktual bagi saya adalah menggunakan
docker-compose.yml
konfigurasi ini :Setelah diluncurkan dengan
docker-compose up
saya akhirnya memiliki/tmp/host-volume
dari makro dibagi sebagai volume yang dapat ditulisi dari dalam wadah:Semoga ini bisa membantu orang lain juga.
sumber
Gambar disimpan di dalam
/var/lib/docker
dan kemudian di bawahstorage driver
direktori yang berlaku .Driver penyimpanan, yang digunakan, dapat ditentukan dengan menjalankan
docker info
perintah.sumber
Menurut panduan Memulai Docker, "gambar buatan Anda" adalah "di registri gambar Docker lokal mesin Anda."
Ini masih aneh bagi saya, karena sekarang mengarah ke pertanyaan. Di mana registry gambar Docker lokal mesin saya?
Namun demikian, saya pasti berpikir info ini layak untuk dibagikan sebagai jawaban.
sumber
Jika ada yang membutuhkannya untuk tujuan penulisan skrip, berikut ini adalah solusi satu baris.
Di shell POSIX, dengan PCRE diaktifkan
grep
, coba:DOCKER_ROOT_DIR="$(docker info 2>&1 | grep -oP '(?<=^Docker Root Dir: ).*')"
Di PowerShell:
$DOCKER_ROOT_DIR="$(docker info 2>&1 | foreach {if($_ -match "Docker Root Dir"){$_.TrimStart("Docker Root Dir: ")}})"
Catatan, ketika pada Windows 10 (pada
10.0.18999.1
), dalam konfigurasi default, ia mengembalikan:C:\ProgramData\Docker
dalam mode "Windows container"/var/lib/docker
, dalam mode "Linux container"sumber
DOCKER_ROOT_DIR="$(sudo docker info 2>&1 | grep -oP '(?<=Data loop file: ).*')"
, tetapi pada akhirnya itu adalah file, bukan direktorisudo ls "$(docker info 2>&1 | grep -oP '(?<=^Docker Root Dir: ).*')"
daftarkan isi direktori ini.