Docker hatası: cihazda boş alan kalmadı


329

Docker'ı bir Debian 7 makinesine şu şekilde yükledim

$ echo deb http://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list
$ sudo apt-get update
$ curl -sSL https://get.docker.com/ubuntu/ | sudo sh

Bundan sonra bir Görüntü oluşturmayı ilk denediğimde aşağıdaki hatayla başarısız oldu

 time="2015-06-02T14:26:37-04:00" level=info msg="[8] System error: write /sys/fs/cgroup/docker/01f5670fbee1f6687f58f3a943b1e1bdaec2630197fa4da1b19cc3db7e3d3883/cgroup.procs: no space left on device"

İşte liman işçisi bilgileri

Containers: 2
Images: 21
Storage Driver: aufs
Root Dir: /var/lib/docker/aufs
Backing Filesystem: extfs
Dirs: 25
Dirperm1 Supported: true
Execution Driver: native-0.2
Kernel Version: 3.16.0-0.bpo.4-amd64
Operating System: Debian GNU/Linux 7 (wheezy)
CPUs: 2
 Total Memory: 15.7 GiB


WARNING: No memory limit support
 WARNING: No swap limit support

Belleği nasıl artırabilirim? Sistem yapılandırmaları nerede saklanır?

Kal'in önerilerinden:

Tüm görüntülerden ve kaplardan kurtulduğumda biraz boş alan bıraktı ve aynı hatayla başarısız olmadan önce görüntü oluşturma daha uzun sürdü. Soru şu: bunun hangi alana atıfta bulunduğu ve onu nasıl yapılandıracağım?


1
Bazen, depolama arka ucunuza bağlı olarak kap başına boyut sınırına ulaşabilirsiniz. Bu bağlantı, cihaz için nasıl düzeltileceğini gösterir.
jpaugh

4
Diskim inode dışındayken bu hatayla karşılaştım. Kontroldf -ih
Kevin Smyth

@KevinSmyth Bunu işaret ettiğiniz için çok teşekkürler. Bundan önce inode sınırlarının öneminin farkında bile değildim.
yosefrow

Yanıtlar:


337

Aynı hatayı aldım ve bu şekilde çözdüm:

1. Docker'daki artık birimleri silin, yerleşik docker birim komutunu kullanabilirsiniz. Yerleşik komut ayrıca, / var / lib / docker / birimlerdeki bir birim olmayan tüm dizinleri de siler, bu nedenle buraya kaydetmek istediğiniz hiçbir şeyi koymadığınızdan emin olun.

Saklamak istediğiniz bazı verileriniz varsa uyarıya çok dikkat edin

Temizlemek:

$ docker volume rm $(docker volume ls -qf dangling=true)

Ek komutlar:

Sarkan hacimleri listele:

$ docker volume ls -qf dangling=true

Tüm ciltleri listele:

$ docker volume ls

2. Ayrıca kullanılmayan tüm Görüntüleri kaldırmayı da düşünün.

İlk olarak <none>görüntülerden kurtulun (bunlar bazen bir görüntü oluştururken oluşturulur ve herhangi bir nedenle görüntü oluşturma kesintiye uğrarsa, orada kalırlar).

İşte onları kaldırmak için kullandığım güzel bir script

docker rmi $(docker images | grep '^<none>' | awk '{print $3}')

Sonra her proje için yerel olarak Görüntüler oluşturmak için Docker Compose kullanıyorsanız. Genellikle klasörünüz olarak adlandırılan birçok resim elde edersiniz (örneğin, proje klasörünüz Merhaba adlı ise, resim adını bulacaksınız)Hello_blablabla ). bu yüzden tüm bu resimleri kaldırmayı düşünün

bunları kaldırmak için yukarıdaki komut dosyasını düzenleyebilir veya

docker rmi {image-name}


23
Sadece bir not: Mac'teki awk komutları, çift değil, tek tırnaklarla çevrelenmelidir, aksi takdirde göz ardı edilir.
ndtreviv

2
MAC kullanıyorum ve benim için çalışıyor !! Yine de tavsiye için teşekkürler.
Mahmoud Zalt

2
Ne kadar garip! Benim için işe yaramıyor. Sadece grep ile aynı sonuçları yazdırır. Ah güzel. Yabancı şeyler oldu.
ndtreviv

3
Bu noktada, görüntüler için aynı filtreyi kullanabilirsiniz. docker images -qf dangling=trueve elbette onları kaldırın docker rmi $(docker images -qf dangling=true).
Tyler Jones

3
Bir hata alıyorum: "docker birim rm" en az 1 bağımsız değişken gerektirir.
IgorGanapolsky

330

GÜNCELLEME
Docker daha gelişmiş hale geldikçe aşağıdaki komutlar saldırıya uğradı. Mevcut en iyi uygulama

docker system prune

Bu kaldırılacak:

- all stopped containers
- all volumes not used by at least one container
- all networks not used by at least one container
- all dangling images

Aşağıdaki gibi, bu nükleerdir.


Sisteminizi temizlemek için önce kapları çıkarın

$ docker rm $(docker ps -aq)

sonra resimleri kaldır

$ docker rmi $(docker images -q)

Bu elbette nükleerdir ve tüm kapları ve tüm görüntüleri kaldıracaktır. Sen aracılığıyla zaman adresinden onları birini kaldırmak olabilir docker rm #CONTAINER_ID#ve docker rmi #IMAGE_ID.


2
Kevin Smyth'in işaret ettiği gibi, bu hata büyük olasılıkla görebileceğiniz inode'larınız tükeniyor olabilir df -ih. Daha cerrahi olarak teşhis etmek için, girin ve ncduardından dosya sayısını belirlemek için c tuşuna basın ve tüm düğümlerinizi ne kullandığının kabaca bir tahminini almak için dosya sayısına göre sıralamak için C tuşuna basın. Sorun gerçekten docker ise, en fazla inode kullanan dizinler tarafından hemen görülecektir.
yosefrow

2
Gerçekten bu doğru bir yaklaşım olduğu için oy vermeli ve cevaplanmalıdır. Bina ortamı kirlendi ve şimdi buraya docker system prune
hacklendi

@zhrist Haha katılıyorum
Joshua Cook

@ coler-j Belki ... orijinal, son derece özgün soru açısından düşünüyorsan. Ama birbirimize karşı dürüst olalım. Çoğu insan bu soruyu OP'lerin karanlık kullanım durumu nedeniyle bulamıyor, ancak liman işçileri önbelleklerinde yer kalmadı.
Joshua Cook

@JoshuaCook aslında çok yaygın bir konudur: github.com/docker/for-win/issues/1042 gerçek bir çözüm olmadan. Sadece kök nedenini almaya çalışıyor ve çok sinir bozucu. :(
coler-j

70

Docker'ın görüntü dosyalarını varsayılan olarak (/ var / lib / docker'da) sakladığı yerde / var üzerinde boş alanınızın olup olmadığını kontrol edin.

Öncelikle, docker ps -atüm kapları (durdurulmuş olanlar dahil) listelemek ve docker rmkaldırmak için kullanarak maddeleri temizleyin; ardından docker imagessakladığınız tüm görüntüleri listelemek ve docker rmikaldırmak için tuşlarını kullanın.

Ardından, docker arka plan programında bir -g seçeneğiyle veya seçeneği düzenleyip seçeneğine /etc/default/dockerekleyerek depolama konumunu değiştirin . "Docker çalışma zamanı" nın konumunu belirtir. Bu, temel olarak resim oluştururken ve kapsayıcıları çalıştırırken Docker'ın oluşturduğu tüm öğelerdir. Kullanılan disk alanı zamanla artmaya meyilli olacağından, bol miktarda alana sahip bir yer seçin. Düzenleme ise , sen almak etkisine değişim için liman işçisi cini yeniden başlatmanız gerekecektir.-gDOCKER_OPTS-g/etc/default/docker

Şimdi yeni bir görüntü oluşturabilmeniz (veya Docker Hub'dan bir tane çekebilmeniz) ve -g seçeneğiyle belirttiğiniz dizinde bir grup dosyanın oluşturulduğunu görmeniz gerekir.


Teşekkürler Kal, DOCKER_OPTS ile ilgili doküman bulamadım. -G seçeneği ne anlama geliyor ve ne olarak ayarlanmalıdır? Ayrıca docker / aufs / mnt altındaki şeyler silinebilir mi?
user_mda

Hey yakut, DOCKER_OPTS hakkında gerçek bir belge bulduğumu sanmıyorum, ancak belgelerde burada düzenleme hakkında konuşan yerler var. Bulabildiğim en yakın docs.docker.com/installation/ubuntulinux/… sonunda DOCKER_OPTS'da DNS ayarlarını düzenleme hakkında konuşuyor. DOCKER_OPTS içindeki seçenekler sadece arka plan programına aktarılır, bu nedenle referans docs.docker.com/reference/commandline/cli/#daemon'dur . -g "Docker çalışma zamanının" temel konumunu belirler
Kal

Ayrıca docker / aufs / mnt altındaki şeyler silinebilir mi?
user_mda

Bunları manuel olarak silmeyin. Bunun yerine, ihtiyacınız olmayan kapları (çıkanlar dahil) ve resimleri silin. -G seçeneğini değiştirmeden önce bunu yapmanız gerekir. Kullanın docker ps -asonra (çıkıldı olanlar dahil) tüm kapları listelemek için ve docker rmbunları kaldırmak için. Kullan docker imagessonra tüm görüntüleri listelemek için ve docker rmibunları kaldırmak için. Umarım bu her şeyi (veya çoğu şeyi) temizlemelidir.
Kal

Teşekkürler, böylece görüntüleri ve kapları temizlemek biraz yer açtı. Daha yeni görüntü hala daha fazlasına ihtiyaç duyuyor.Ancak docker çalışma zamanı neye işaret etmeli?
user_mda

38

Daha önce de belirtildiği gibi,

docker system prune

yardımcı olur, ancak kullanılmayan hacimleri budamadan Docker 17.06.1 ve üzeri. Docker 17.06.1'den bu yana, aşağıdaki komut da birimleri budaır:

docker system prune --volumes

Docker belgelerinden: https://docs.docker.com/config/pruning/

Docker sistemi budama komutu görüntüleri, kapsayıcıları ve ağları budanan bir kısayoldur. Docker 17.06.0 ve önceki sürümlerinde, birimler de budanır. Docker 17.06.1 ve üstü sürümlerde, docker sistemi budama birimlerini ayarlamak için --volumes bayrağını belirtmeniz gerekir.

Birimleri budamak ve görüntüleri ve kapsayıcıları saklamak istiyorsanız:

docker volume prune

3
docker volume pruneBuradaki tüm diğer çözümler çalışmayı bıraktığında bugün bana yardımcı oldu.
AVProgrammer

1
Büyük yardım - hatayı düzeltmeye ek olarak, bu benim sabit diskimde birçok konser alanı serbest bıraktı.
Matt Browne

29

Bu sadece Docker'ın test kurulumudur (yani üretim değil) ve nükleer temizlik yapmayı umursamıyorsanız:

tüm kapları temizleyin: docker ps -a | sed '1 d' | awk '{print $1}' | xargs -L1 docker rm

tüm resimleri temizle: docker images -a | sed '1 d' | awk '{print $3}' | xargs -L1 docker rmi -f

Yine, Docker geliştirirken ec2 bulut sunucularımda bunu kullanıyorum, ciddi bir KG veya Üretim yolunda değil. Harika olan şey, Docker dosya (lar) ınız varsa, yeniden oluşturmanın kolay olması ve / veya docker pull.


1
Boot2docker örneğimde aramak zorunda kaldım docker images -a | sed '1 d' | awk '{print $3}' | xargs docker rmi -f. OS X BSD sürümü, boot2docker sürümünden farklı olarak seçeneği xargsdestekler -L.
orluke

1
docker ps -a -qMetin manipülasyonlarından kaçınmak için vb. Kullanabilirsiniz , yani docker rm $(docker ps -a -q); docker rmi -f $(docker images -a -q)hile yapmalısınız
Niklas B.

21

kullanılmayan tüm kapları, birimleri, ağları ve resimleri aynı anda kaldırmak için ( https://docs.docker.com/engine/reference/commandline/system_prune/#related-commands ):

docker system prune -a -f --volumes

yeterli değilse, önce çalışan kapları kaldırabilirsiniz:

docker rm -f $(docker ps -a -q)
docker system prune -a -f --volumes

/ var / lib / docker'ı artırmak veya daha fazla alana sahip başka bir konum kullanmak da bu hatadan kurtulmak için iyi bir alternatiftir (bkz . Docker görüntü kurulum dizinini değiştirme? )


docker system prunebirimleri kaldırmaz.
Bonifacio2

1
docker system prune -a -f --volumesbirimleri kaldıracaktır.
Jimson Kannanthara James

19

Mac için Docker

Yani docker system pruneve docker system prune --volumesdiğer cevaplarda önerilen her seferinde biraz yer açtı, ama sonunda her şeyi her çalıştırdığımda hatayı alıyordum.

Kök sorununu gerçektenDocker.raw düzelten şey, Mac için Docker'ın depolama için kullandığı dosyayı silmek ve yeniden başlatmaktı.

Bu dosyayı bulmak için Mac için Docker'ı açın ve *

Preferences > Resources > Advanced > Disk Image Location

* bu sürüm 2.2.0.5 içindir, ancak eski sürümlerde benzer olmalıdır

Mac için Docker'ın daha yeni sürümlerinde **, bu dosyanın diskteki kullanıcı arayüzünde gerçek boyutunu ve ayrılan maksimum boyutunu gösterir. Muhtemelen bunun büyük olduğunu göreceksiniz. Örneğin makinemde 41GB oldu !

** Eski sürümlerde, kullanıcı arayüzündeki gerçek disk kullanımını göstermez ve MacOS Finder dosya boyutunu her zaman ayrılan maksimum boyut olarak gösterir. Dizini bir terminalde açıp çalıştırarak diskteki gerçek boyutu kontrol edebilirsiniz.du -h Docker.raw

Docker.rawMac için Docker'ı sildim , yeniden başlattım ve dosya otomatik olarak tekrar oluşturuldu ve 0 GB'a geri döndü .

Tabii ki Docker önbelleğimi kaybetmiş olmama rağmen her şey eskisi gibi çalışmaya devam etti . Beklendiği gibi, birkaç Docker komutunu çalıştırdıktan sonra dosya birkaç GB'lık bir şeyle tekrar dolmaya başladı, ancak hiçbir yerde 41 GB'a yakın bir yer yok .


Güncelleme

Birkaç ay sonra Docker.rawtekrar benzer bir boyuta doldurdum. Bu yöntem işe yaradı, ancak birkaç ayda bir tekrarlanması gerekiyor. Benim için sorun değil.

Bunun neden çalıştığına dair bir not - Mac için Docker'da bir hata olduğunu varsaymalıyım. Bu dosyanın içeriğini tamamen temizliyor docker system prune/ temizliyor gibi görünüyor docker system prune --volumes, ancak dosya bu komutlar tarafından silinemeyen diğer şeyleri biriktiriyor gibi görünüyor. Her neyse, manuel olarak silmek sorunu çözer!


15

Docker, alanınızı kaplayabilen sarkan görüntüler bırakır. Docker'dan sonra temizlemek için aşağıdakileri çalıştırın:

docker image prune [-af if you want to force remove all images]

veya Docker'ın eski sürümleriyle:

docker rm $(docker ps -q -f 'status=exited')
docker rmi $(docker images -q -f "dangling=true")

Bu, cihaz alanını temizleyen umarım çıkmış ve sarkan görüntüleri kaldıracaktır.


14
  1. Sarkık görüntüleri temizle docker rmi $(docker images -f "dangling=true" -q)
  2. İstenmeyen hacimleri kaldırın
  3. Kullanılmayan görüntüleri kaldırın
  4. Kullanılmayan kapları çıkarın

Benim için sorun çok fazla görüntü içeriyordu. Onları temizledikten sonra liman işçisi tekrar çalışır.
Tran Triet

9

Ayrıca kullanabilirsiniz:

docker system prune

veya sadece birimler için:

docker volume prune

7

Benim durumumda ubuntu-server 18.04.1'in kurulumu (bazı tuhaf nedenlerden dolayı) 750GB yerine sadece 4GB boyutunda bir LVM mantıksal hacmi yarattı. Bu nedenle görüntüleri çekerken bu "cihazda boşluk kalmadı" hatası alırdım. Düzeltme basit:

lvextend -l 100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv
resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv

.. aşağıdaki başlıktaki resize2fs için adım adım açıklamama bakın : stackoverflow.com/questions/32485723/…
Alex

7

RHEL makinesinde de bu sorunla karşılaştım. Yığın taşması ve docker-hub topluluğu üzerinde hiçbir yerde uygun bir çözüm bulamadım. Aşağıdaki komuttan sonra bile bu sorunla karşılaşıyorsanız:

docker sistem kuru erik - tüm

Sonunda işe yarayan çözüm:

  1. liman işçisi bilgisi
    • Geçerli docker depolama sürücüsünü kontrol etmek için
    • Benimki: Depolama Sürücüsü: devicemapper; Eğer overlay2 olarak depolama sürücünüz varsa endişelenecek bir şey yok. Çözüm hala sizin için çalışacaktır.
  2. df -h
    • Bu, makinedeki kullanılabilir dosya sistemlerini ve monte edildikleri yolu kontrol etmektir. Not almak için iki bağlı yol:
    • / dev / mapper / rootvg-var 7.6G 1.2G 6.1G% 16 / var
    • / dev / mapper / rootvg-apps 60G 9.2G 48G% 17 / uygulamalar
    • Not - Varsayılan olarak docker depolama yolu / var / lib / docker şeklindedir. Kullanılabilir alanı ~ 6 GB ve dolayısıyla alanla ilgili tüm sorunlar var. Temel olarak, varsayılan depolama alanını kullanılabilir alanın daha fazla olduğu başka bir depolama alanına taşımam gerekiyor. Benim için / apps üzerine kurulu '/ dev / mapper / rootvg-apps' Dosyası sysyem yolu. Şimdi görev / var / lib / docker'ı / apps / newdocker / docker gibi bir şeye taşımaktır.
  3. mkdir / apps / newdocker / docker
  4. chmod -R 777 / uygulamalar / newdocker / docker
  5. Linux'ta bulunan docker.serive dosyasını şu adreste güncelleyin: / usr / lib / systemd / system
    • vi /usr/lib/systemd/system/docker.service
  6. depolama cihazı geliştiriciyse, mevcut ExecStart satırını yorumlayın ve [Hizmet] altına ekleyin:
    • ExecStart =
    • ExecStart = / usr / bin / dockerd -s geliştirici --storage-opt dm.fs = xfs --storage-opt dm.basesize = 40GB -g / apps / newdocker / docker --exec-opt native.cgroupdriver = cgroupfs
  7. Veya depolama aygıtı kaplaması 2 ise:
    • varolan ExexStart deyimine -g / apps / newdocker / docker ekleyin.
    • ExecStart = / usr / bin / dockerd -g / apps / newdocker / docker -H fd: // --containerd = / run / containerd / containerd.sock gibi bir şey
  8. rm -rf / var / lib / docker (Mevcut tüm docker verilerini silecektir)
  9. systemctl durdurma docker
  10. ps aux | grep -i liman işçisi | grep -v grep
    • Yukarıdaki komut tarafından hiçbir çıktı üretilmediyse, aşağıdaki komutu kullanarak sistemd arka planını yeniden yükleyin.
  11. systemctl arka plan programı yeniden yükleme
  12. systemctl başlangıç ​​docker
  13. liman işçisi bilgisi
    • Kullanılabilir Veri Alanına bakın: Bağlantı istasyonuna yeni Dosya sistemine geçtikten sonra 62.15GB.
  14. YAPILAN

Bunu başarmak için tüm belgelere baktım! Teşekkürler bayım. Bunu cevaplardan biri olarak işaretleyebilir miyiz?
Vulegend

6

Docker'ı aşağıdaki komutu kullanarak temizleyin:

docker images --no-trunc | grep '<none>' | awk '{ print $3 }' \
| xargs docker rmi

4

Gruplarınızda cpusetdenetleyici etkin. Bu denetleyici çoğunlukla görevlerinizin hangi CPU / bellek bankasının çalışmasına izin verildiğini hassas bir şekilde belirtmesine izin verdiği NUMA ortamında kullanışlıdır.

Varsayılan olarak zorunlu cpuset.memsvecpuset.cpus ayarlanmamıştır, yani göreviniz için "boşluk kalmaz", dolayısıyla hata.

Bunu düzeltmenin en kolay yolu cgroup.clone_childrenkök grupta 1 değerini etkinleştirmektir . Sizin durumunuzda,

echo 1 > /sys/fs/cgroup/docker/cgroup.clone_children

Temel olarak, sisteme kapsayıcıyı cpuset.memsve cpuset.cpusana gruplarından otomatik olarak başlatma talimatı verecektir.


1
Bu doğru cevap. Gerçekten de Docker'ı bir şeye yükseltmek> = Docker 1.8 bunu çözmelidir. Bu, github.com/opencontainers/runc/issues/133 ile ilgilidir Sorundan , bir diğer olası geçici çözüm "echo 0 > /sys/fs/cgroup/cpuset/system.slice/cpuset.mems
cpuguy83

2

Docker Toolkit aracılığıyla boot2docker görüntüsünü kullanıyorsanız, sorun boot2docker sanal makinesinde yer kalmamış olmasından kaynaklanır.

Bir resim yaptığınızda docker importveya yeni bir resim eklediğinizde, resim/mnt/sda1 doldurulan .

Resimde hangi boş alana sahip olduğunuzu kontrol etmenin bir yolu, vm'ye ssh ve koşmaktır. df -h ve / mnt / sda1 içinde kalan alanı ve kontrol etmektir.

Ssh komutu docker-machine ssh default

Bunun gerçekten bir alan sorunu olduğundan emin olduktan sonra, bu soruya verilen cevapların bazılarındaki talimatlara göre temizleyebilir veya alandaki alanı artırarak boot2docker görüntüsünün kendisini yeniden boyutlandırmayı seçebilirsiniz. /mnt/sda1

Resmin yeniden boyutlandırılması için buradaki talimatları uygulayabilirsiniz https://gist.github.com/joost/a7cfa7b741d9d39c1307


2

Eğer Docker Masaüstü kullanıyorsanız, size artırabilir Disk görüntü boyutunu içinde Gelişmiş Ayarlar Docker en giderek Tercihler .

İşte macOS'un ekran görüntüsü:

MacOS'ta Docker Desktop, Kaynaklar, Gelişmiş, Disk görüntü boyutu


1

Bunun nedeni 40 GB olarak ayarlanmış varsayılan depolama alanı olabilir (varsayılan yol, / var / lib / docker)

depolama birimini farklı bir yolu gösterecek şekilde değiştirebilirsiniz

  • dosyayı düzenle -> / etc / sysconfig / docker-storage
  • satırın altında güncelle (yoksa ekle)

DOCKER_STORAGE_OPTIONS = '- depolama sürücüsü = yer paylaşımı --graph = CUSTOM_PATH'

  • Docker systemctl yeniden başlatmak docker systemctl daemon-reload systemctl start docker

komut docker bilgilerini çalıştırırsanız (depolama sürücüsünü yer paylaşımı olarak göstermelidir)


0

Bunun olabileceği birkaç yol var gibi görünüyor. Sahip olduğum sorun, docker disk görüntüsünün maksimum boyutuna (OSX'te hangi boyutu görüntülemek istiyorsanız Docker Whale -> Tercihler -> Disk) çarpmasıydı.

Ben sınırı yükseltmek ve gitmek için iyi oldu. Eminim kullanılmayan görüntüleri temizlemek de işe yarayacaktır.


0

Aşağıdaki komutları çalıştırıyorum.

Daha sonra görüntüleri yeniden oluşturmaya gerek yoktur.

docker rm $(docker ps -qf 'status=exited')
docker rmi $(docker images -qf "dangling=true")
docker volume rm $(docker volume ls -qf dangling=true)

Bunlar çıkan / sarkan kapları ve sarkan hacimleri ortadan kaldırır.


0

Benim docker system pruneiçin hile yaptı. Mac OS kullanıyorum.


Mac OS'de kullanılan alanı temizlemeye çalışırken bu benim için de işe yaradı. komutu kullanmak docker volume lshiçbir şey döndürmüyordu, bu yüzden depolama alanı çoğunlukla önbellekler ve sarkan görüntüler tarafından kullanılmış gibi görünüyordu.
Tuhin

-3
$ docker rm $(docker ps -aq)

Bu benim için çalıştı

docker system prune 

son sürümü ile daha iyi bir seçenek gibi görünüyor

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.