Kapsayıcıları dizin altında bulmayı başardım /var/lib/docker/containers, ancak görüntüleri bulamıyorum.
Altındaki dizinler ve dosyalar /var/lib/dockernelerdir?
Kapsayıcıları dizin altında bulmayı başardım /var/lib/docker/containers, ancak görüntüleri bulamıyorum.
Altındaki dizinler ve dosyalar /var/lib/dockernelerdir?
Yanıtlar:
Dizinin içeriği, Docker'ın depolama için kullandığı sürücüye/var/lib/docker bağlı olarak değişir .
Varsayılan olarak bu olacak aufsama geri düşebilir overlay, overlay2, btrfs, devicemapperveya zfssizin çekirdek desteğine bağlı olarak. Çoğu yerde bu olacak aufsama RedHats gittidevicemapper .
Depolama sürücüsünü -sveya--storage-driver= seçeneğiyle manuel olarak Docker arka plan programına ayarlayabilirsiniz .
/var/lib/docker/{driver-name} görüntülerin içeriği için sürücüye özgü depolamayı içerir. /var/lib/docker/graph/<id>artık yalnızca jsonve layersizedosyalarındaki resim hakkında meta veriler içeriyor .Aşağıdaki durumlarda aufs:
/var/lib/docker/aufs/diff/<id> görüntülerin dosya içeriğine sahiptir./var/lib/docker/repositories-aufsyerel resim bilgilerini içeren bir JSON dosyasıdır. Bu komutla görüntülenebilir docker images.Aşağıdaki durumlarda devicemapper:
/var/lib/docker/devicemapper/devicemapper/data görüntüleri saklar/var/lib/docker/devicemapper/devicemapper/metadata meta veridocker info gerçek konumu kullanın ve bulun .
Docker for MacHer biri 1,5 GB 2 görüntü ile kullanıyorum ve /var/libhiçbir dizini vardır docker.
Mac için Docker uygulaması kullanılırken, kapların şu adreste bulunan VM içinde depolandığı anlaşılmaktadır:
~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2
GÜNCELLEME ( mmorin izniyle ):
15 Ocak 2019'dan itibaren sadece bu dosya var gibi görünüyor:
~/Library/Containers/com.docker.docker/Data/vms/0/Docker.raw
Docker Diskini ve içindeki tüm görüntüleri ve kapsayıcıları içerir.
ubuntu, nginx) mi yoksa bu tüm kapların yeri mi? Orijinal soru , kap değil, görüntü ister ...
Docker for MacHer biri 1,5 GB'lık iki görüntü ile kullanıyorum ve ~/Library/Containers/Data/com.docker.docker/Datadizini yok com.docker.driver.amd64-linuxve tek büyük dosya vms/0/Docker.raw3,6 GB ile.
du -hd1 ~/Library/Containers/com.docker.docker/Data/
bu eski yöntemdi, şimdi değişti. 2019 itibariyle bu yanıtı dikkate almayın
Mac OS X veya Windows özel durumunda, boot2docker kullanarak, Docker görüntüleriniz boot2docker tarafından yönetilen bir VirtualBox VM'sinde saklanır.
Bu VM normal VirtualBox görüntülerinin bulunduğu yerde saklanacaktır:
OS X: ~/VirtualBox VMs/boot2docker-vm
Pencereler: %USERPROFILE%/VirtualBox VMs/boot2docker-vm
Çalıştırarak sıfırlayabilirsiniz (UYARI: Bu, şu ana kadar oluşturup indirdiğiniz tüm resimleri yok edecektir):
boot2docker down
boot2docker destroy
boot2docker init
boot2docker up
Bu, yararlı - rm seçenekleri olmadan bir yapı oluştururken / hata ayıklarken tonlarca ara görüntü sakladıysanız özellikle yararlıdır, burada referans için alıntı yaparım: Kullanım:
docker build -t webapp --rm=true --force-rm=true .
onun yerine:
docker build -t webapp .
%USERPROFILE%\.docker\machine\machines (lütfen yoldaki tam durağa dikkat edin)
C:\Users\Public\Documents\Hyper-V\Virtual hard disks\MobyLinuxVM.vhdx
Aslında Docker görüntüleri aşağıdaki komutla gösterildiği gibi iki dosyada saklanır
$ docker info
Veri dosyası:
/var/lib/docker/devicemapper/devicemapper/dataMeta veri dosyası:
/var/lib/docker/devicemapper/devicemapper/metadata
docker infoçok yararlıdır, ancak çıktıDocker Root Dir: /var/lib/docker görüntü saklama yerini göstermez (bkz. Yukarıdaki Mac'e özel cevap).
Hyper-V kullanan yeni piyasaya sürülen 'Windows için Docker'da veriler Docker sanal sabit diskinde bulunur:
C: \ Kullanıcılar \ Ortak \ Belgeler \ Hyper-V \ Sanal sabit diskler \ MobyLinuxVM.vhdx
Docker / MobyLinuxVM'ye erişim için 'Hyper-V Yöneticisi'ni de açabilirsiniz.
C:\ProgramData\docker\windowsfilterbenim için koyuyor . Daha fazla bilgi: stackoverflow.com/a/39971954/188740
Görüntüler içinde saklanır /var/lib/docker/graph/<id>/layer.
Görüntülerin yalnızca üst görüntüden farklı olduğunu unutmayın. Üst kimlik, görüntünün meta verileriyle birlikte depolanır /var/lib/docker/graph/<id>/json.
Ne zaman docker runbir görüntü. AUFS, tüm katmanları kullanılabilir bir dosya sisteminde 'birleştirir'.
Ubuntu'da görüntüler çalışırken "oynatabilirsiniz"
sudo baobab /var/lib/docker
Aslında, görüntüler içinde saklanır /var/lib/docker/aufs/diff

Docker araç kutusunu (docker-machine kullanan) kullanan biri için, Mac OS X'te boot2docker ile ilgili cevaplar geçerli değildir. Liman işçisi makine VM'si "varsayılan" olarak adlandırılır ve /Users/<username>/.docker/machine/machines/default/dizinde bulunur.
In Windows için Docker (doğal Windows) Varsayılan kapsayıcı depolama altındadır:
> docker info
...
Docker Root Dir: C:\ProgramData\Docker
...
docker buildKomutu çalıştırdım ve görüntü dosyası olduğunu düşündüğüm bir dosya göremiyorum. Bazı klasörler ve bazı metin dosyaları görüyorum (örn. Service.txt). Ne tür dosya ve hangi dosya uzantısı ile docker buildoluşturulur?
MAC için Docker (değil boot2docker) kullanıyorsanız , konum/Users/<</>UserName></>/Library/Containers/com.docker.docker/Data/
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.qcow2Görüntüyü buldum. Ama bu kaplar değil. Onları gerçekten bu veri dizininde görmüyorum ..
Cevap olarak buraya Mac üzerinde iseniz, bu yer alır
/Users/MyUserName/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2
Tristan'ın cevabını genişleterek, Hyper-V içeren Windows'ta görüntüyü matthuisman'dan şu adımlarla taşıyabilirsiniz:
Windows 10'da,
- Bağlantı istasyonunu durdurma vb.
- Görev çubuğu arama kutusuna "Hyper-V Manager" yazın ve çalıştırın.
- Sol bölmeden PC'nizi seçin (Mine DESKTOP-CBP ** olarak adlandırılır)
- Doğru sanal makineye sağ tıklayın (Mine MobyLinuxVM olarak adlandırılır)
- "Kapat" ı seçin (çalışıyorsa)
- Tekrar sağ tıklayın ve "Taşı" yı seçin
- İstemleri izleyin
docker buildKomut tarafından oluşturulan görüntüleri bulmaya çalışıyorum . Windows 10 bilgisayarındayım. C: \ Users \ Public \ Documents \ Hyper-V \ Virtual sabit disklerine bakıyorum, ancak tek gördüğüm MobyLinuxVM.vhdx. Gerçek görüntüler nerede saklanır?
Docker'ın hala bir VM'de çalıştığını aklınızda tutarsanız, sistem yolları Mac Osx sisteminden değil, VM'ye göredir. Her şeyin bir VM dosyasında bulunduğunu söylediği gibi:
/Users/MyUserName/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2
Bu birim seçeneği ve VM ana bilgisayarını listeleyebileceğiniz ls komutuyla Alp görüntüsünü çalıştırmayı deneyin:
docker run --rm -it -v /: / vm-root alp: kenar ls -l / vm-root
Bundan sonra sadece deneyin:
docker run --rm -it -v /: / vm-root alp: kenar ls -l / vm-root / var / lib / docker
Artık docker klasörünü VM ana bilgisayarından listeleyebilirsiniz
Mac OSX'te Docker için boot2docker'ı kullanıyorum, böylece görüntüler /Users/<USERNAME>/VirtualBox VMs/boot2docker-vm/boot2docker-vm.vmdk.
Bu soruya yalnızca Ubuntu kullanıcıları için cevap verebilirim:
Komutu çalıştırdığınızda docker'ın kök dizini bulunabilir docker info
Docker dizini şu satırda verilecek: " Docker Root Dir: /var/lib/docker"
Docker görüntüleri hakkında, docker dizininde saklanırlar:
/var/lib/docker/aufs/diff/
Bunların docker'ın tüm sürümlerinde aynı olmadığını unutmayın. Şu anda 1.12.3 kullanıyorum.
docker infoSistem genelinde bilgileri görüntülemek için komutu kullanın ; konum değişebilir.
Kullanılan depolama sürücüsüne bağlı olarak havuz adı, veri dosyası, meta veri dosyası, kullanılan veri alanı, toplam veri alanı, kullanılan meta veri alanı ve toplam meta veri alanı gibi ek bilgiler gösterilebilir.
Veri dosyası görüntülerin depolandığı ve meta veri dosyası bu görüntülerle ilgili meta verilerin depolandığı yerdir. İlk kez çalıştırıldığında Docker
/var/lib/docker, monte edilen birimde mevcut olan alandan belirli bir miktarda veri alanı ve meta veri alanı ayırır.
İşte Ubuntu'daki örnek ( Root Dir'yi kontrol edin ):
$ docker info
...
Server Version: 18.06.1-ce
Storage Driver: aufs
Root Dir: /var/snap/docker/common/var-lib-docker/aufs
...
Docker Root Dir: /var/snap/docker/common/var-lib-docker
...
İşte Travis CI'daki örnek (bakınız Docker Root Dir ):
$ docker info
Server Version: 17.09.0-ce
Storage Driver: overlay2
Backing Filesystem: extfs
...
Docker Root Dir: /var/lib/docker
...
Bu --formatbilgileri tek bir dosyaya çıkarmak için parametre kullanabilirsiniz , örn.
$ docker info --format '{{.DriverStatus}}'
[[Root Dir /var/snap/docker/common/var-lib-docker/aufs] [Backing Filesystem extfs] [Dirs 265] [Dirperm1 Supported true]]
veya:
$ docker info --format '{{json .DriverStatus}}'
[["Root Dir","/var/snap/docker/common/var-lib-docker/aufs"],["Backing Filesystem","extfs"],["Dirs","265"],["Dirperm1 Supported","true"]]
içindeki docker klasörünü kontrol et /var/lib
görüntüler aşağıdaki konumda saklanır:
/var/lib/docker/image/overlay2/imagedb/content
/var/lib/docker/image/overlay2/. Ayrıca bunun Docker motorunuzun overlay2Depolama Sürücüsü olarak kullanmasından kaynaklandığını unutmayın .
Ortam: Windows 10 Pro, docker masaüstü 2.0.3.0 kenarı
sistem tepsisindeki docker simgesini sağ tıklayın, ayarları seçin - gelişmiş:
Disk görüntüsü konumu (tarayıcı üzerinden düzenlenebilir):
C: \ Kullanıcılar \ Ortak \ Belgeler \ Hyper-V \ Sanal Sabit Diskler \ DockerDesktop.vhdx
(orada - Belgeler dizini gizli)
docker buildkomut tarafından oluşturulan resim mi?
Fedora'da Docker, varsa depolama için LVM kullanır . Benim sistemde docker infogösterir:
Storage Driver: devicemapper
Pool Name: vg01-docker--pool
Pool Blocksize: 524.3 kB
Base Device Size: 10.74 GB
Backing Filesystem: xfs
Data file:
Metadata file:
Data Space Used: 9.622 GB
...
Bu durumda, depolama alanını artırmak için LVM komut satırı araçlarını veya blivet gibi uyumlu bölüm yöneticilerini kullanmanız gerekir .
Windows 2016'da, docker (DockerMsftProvider), docker kökü altında "windowsfilter" klasörünü kullanır
>docker info
...
Storage Driver: windowsfilter
...
Docker Root Dir: C:\ProgramData\docker
...
Dosyaları indirmek için docker kök altındaki "tmp" klasörünü kullanır ve indirilen dosyaları "windowsfilter" klasörüne çıkardıktan sonra dosyaları siler.
Yukarıdaki cevapları kullanarak macos üzerinde Docker 18.09 sürümü ile soruyu çözemedim ve tekrar denedim.
Benim için tek gerçek çözüm bu docker-compose.ymlyapılandırmayı kullanmaktı :
version: '3.7'
...
services:
demo-service:
volumes:
- data-volume:/var/tmp/container-volume
volumes:
data-volume:
driver: local
driver_opts:
type: none
o: bind
device: /tmp/host-volume
İle başlattıktan sonra docker-compose upnihayet /tmp/host-volumekonteyner içinde yazılabilir hacim olarak paylaşılan macos vardı :
> docker exec -it 1234 /bin/bash
bash-4.4$ df
Filesystem 1K-blocks Used Available Use% Mounted on
...
osxfs 488347692 464780044 21836472 96% /var/tmp/container-volume
Umarım bu başkalarına da yardımcı olur.
Docker Başlangıç kılavuzuna göre , makinenizin yerel Docker görüntü kayıt defterinde "yerleşik görüntünüz" ifadesidir. "
Bu hala benim için garip, çünkü şimdi soruya yol açıyor. Makinemin yerel Docker görüntü kayıt defteri nerede?
Yine de, kesinlikle bu bilginin bir cevap olarak paylaşmaya değer olduğunu düşünüyorum.
Komut dosyası oluşturma amacıyla buna ihtiyaç duyan biri varsa, işte tek satırlık bir çözüm.
PCIX etkinken POSIX kabuğunda grepşunları deneyin:
DOCKER_ROOT_DIR="$(docker info 2>&1 | grep -oP '(?<=^Docker Root Dir: ).*')"
PowerShell'de:
$DOCKER_ROOT_DIR="$(docker info 2>&1 | foreach {if($_ -match "Docker Root Dir"){$_.TrimStart("Docker Root Dir: ")}})"
Windows 10'da (itibariyle 10.0.18999.1), varsayılan yapılandırmalarda şunu döndürür:
C:\ProgramData\Docker "Windows kapsayıcılar" modunda/var/lib/docker, "Linux kapsayıcıları" modundaDOCKER_ROOT_DIR="$(sudo docker info 2>&1 | grep -oP '(?<=Data loop file: ).*')", ama sonunda bir dosya değil, bir dizin
sudo ls "$(docker info 2>&1 | grep -oP '(?<=^Docker Root Dir: ).*')"için bu dizinin içeriğini listeleyin.