Yanıtlar:
Docker görüntüleri dosya sistemi katmanları olarak saklanır. Dockerfile içindeki her komut bir katman oluşturur. docker commit
Bazı değişiklikler yaptıktan sonra ( docker run
muhtemelen üzerinden ) komut satırından kullanarak katmanlar da oluşturabilirsiniz .
Bu katmanlar varsayılan olarak altında saklanır /var/lib/docker
. (Teorik olarak) oradan dosyaları seçip farklı bir docker sunucusuna yükleyebilmenize rağmen, Docker tarafından kullanılan dahili temsil ile oynamak muhtemelen kötü bir fikirdir.
Resminizi ittiğinizde, bu katmanlar kayıt defterine gönderilir (varsayılan olarak docker hub kayıt defteri… resminizi başka bir kayıt defteri önekiyle etiketlemediğiniz sürece) ve orada saklanır. İçe aktarırken, katman kimliği zaten yerel olarak katmanınızın olup olmadığını veya indirilmesi gerektiğini kontrol etmek için kullanılır. Kullanabilirsinizdocker history
katmanları (diğer resimler) (katman oluşturulan komutu belli bir ölçüye kadar, ve benzeri) kullanılır hangi peek.
Docker hub kayıt defterine zorlamadan görüntü paylaşma seçeneklerine gelince, en iyi seçenekleriniz:
docker save
bir görüntü veya docker export
kap. Bu, bir tar dosyasını standart çıktıya çıktılar, böylece böyle bir şey yapmak istersiniz docker save 'dockerizeit/agent' > dk.agent.latest.tar
. Daha sonra docker load
veya docker import
farklı bir ana bilgisayarda kullanabilirsiniz.
Kendi özel kayıt defterinizi barındırın. - Eski, yorumlara bakın Docker kayıt defteri görüntüsüne bakın . Kurulum için önemsiz olan, gerektiğinde başlatabileceğiniz ve durdurabileceğiniz bir s3 destekli kayıt defteri oluşturduk (tüm durum seçtiğiniz s3 kovasında tutulur). Bu aynı zamanda bir kayıt defterine geçerken neler olduğunu izlemenin ilginç bir yoludur
Her ne kadar docker hub ile ilgili endişeniz ne olursa olsun muhtemelen burada da uygulanacaktır rağmen quay.io (ben şahsen denedim) gibi başka bir kayıt defteri kullanın .
docker save
: Başka bir görüntüden türetilen bir görüntüyü (diyelim python:2.7
) bir kayıt defterine ittiğimde, değişmedikçe üst görüntünün birden çok kez yüklenmesi gerekmez. Benzer bir dosya boyutu optimizasyonu elde etmek için kısmi görüntüleri kaydedebilir miyim? Bu çemberlerden atlıyorum çünkü birden fazla görüntüye sahip bir hobim ve özel bir kayıt için ödeme yapmak istemiyorum.
docker build
ana bilgisayarda çekemez misiniz?
npm install
... Çok az hafızaya sahip olduğu ve bu adımın her zaman başarısız olduğu için ev sahibime yapamam (bkz: github.com/npm/npm/issues/5021 )
Bu bloga dayanarak, bir docker kaydı olmadan bir docker görüntüsü paylaşılabilir:
docker save --output latestversion-1.0.0.tar dockerregistry/latestversion:1.0.0
Bu komut tamamlandıktan sonra, görüntü bir sunucuya kopyalanabilir ve aşağıdaki gibi içe aktarılabilir:
docker load --input latestversion-1.0.0.tar
Bir docker görüntüsünü uzak bir sunucuya göndermek 3 basit adımda yapılabilir:
docker save -o <path for created tar file> <image name>
Yerel olarak, kullanım scp aktarmak .tar uzaktan kumandaya
Uzak sunucuda docker'a görüntü yükleyin:
docker load -i <path to docker image tar file>
Docker Hub'ın kendisini kullanmak istemiyorsanız, ArtFactory by JFrog altında kendi Docker veri havuzunuzu barındırabilirsiniz:
https://www.jfrog.com/confluence/display/RTF/Docker+Repositories
bu da kendi sunucularınızda çalışacaktır.
Diğer barındırma tedarikçileri mevcuttur, örneğin CoreOS:
http://www.theregister.co.uk/2014/10/30/coreos_enterprise_registry/
hangi quay.io aldı