Saya bertanya-tanya di mana gambar Docker disimpan di mesin host lokal saya. Bisakah saya membagikan Docker-Image saya tanpa menggunakan Docker-Hub
atau Dockerfile
sebenarnya Docker-Image? Dan apa yang sebenarnya terjadi ketika saya 'mendorong' Docker-Image ke Docker-Hub?
docker
docker-registry
yaquawa
sumber
sumber
Jawaban:
Gambar Docker disimpan sebagai lapisan sistem file. Setiap perintah di Dockerfile membuat layer. Anda juga dapat membuat lapisan dengan menggunakan
docker commit
dari baris perintah setelah membuat beberapa perubahan (docker run
mungkin melalui ).Lapisan-lapisan ini disimpan secara default di bawah
/var/lib/docker
. Meskipun Anda (secara teoritis) dapat mengambil file dari sana dan menginstalnya di server docker yang berbeda, mungkin ide yang buruk untuk bermain dengan representasi internal yang digunakan oleh Docker.Ketika Anda mendorong gambar Anda, lapisan-lapisan ini dikirim ke registri (register hub docker, secara default ... kecuali Anda menandai gambar Anda dengan awalan registri lain) dan disimpan di sana. Saat mendorong, id lapisan digunakan untuk memeriksa apakah Anda sudah memiliki lapisan secara lokal atau perlu diunduh. Anda dapat menggunakan
docker history
untuk mengintip di mana lapisan (gambar lain) digunakan (dan, sampai taraf tertentu, perintah yang menciptakan lapisan)Adapun opsi untuk berbagi gambar tanpa mendorong ke register hub docker, opsi terbaik Anda adalah:
docker save
gambar ataudocker export
wadah. Ini akan menampilkan file tar ke output standar, jadi Anda ingin melakukan sesuatu sepertidocker save 'dockerizeit/agent' > dk.agent.latest.tar
. Kemudian Anda dapat menggunakandocker load
ataudocker import
di host yang berbeda.Host registri pribadi Anda sendiri. - Sudah ketinggalan zaman, lihat komentar
Lihat gambar registri buruh pelabuhan . Kami telah membangun registry yang didukung s3 yang dapat Anda mulai dan hentikan sesuai kebutuhan (semua status disimpan di ember s3 pilihan Anda) yang mudah untuk dipasang. Ini juga merupakan cara menarik untuk menonton apa yang terjadi ketika mendorong ke registriGunakan registri lain seperti quay.io (saya belum mencobanya secara pribadi), meskipun masalah apa pun yang Anda miliki dengan hub buruh pelabuhan mungkin akan berlaku di sini juga.
sumber
docker save
: ketika saya mendorong gambar yang berasal dari gambar lain (katakanlahpython:2.7
) ke registri, gambar induk tidak perlu diunggah lebih dari satu kali kecuali itu berubah. Bisakah saya menyimpan sebagian gambar untuk mencapai optimasi ukuran file yang serupa? Saya melompati lingkaran ini karena saya hobi dengan banyak gambar dan saya tidak ingin membayar untuk pendaftaran pribadi.docker build
pada host?npm install
... Saya tidak dapat membangun host saya karena memiliki memori yang sangat sedikit dan langkah ini selalu gagal (lihat: github.com/npm/npm/issues/5021 )Berdasarkan blog ini , orang dapat membagikan gambar buruh pelabuhan tanpa registri buruh pelabuhan dengan menjalankan:
Setelah perintah ini selesai, seseorang dapat menyalin gambar ke server dan mengimpornya sebagai berikut:
sumber
Mengirim gambar buruh pelabuhan ke server jarak jauh dapat dilakukan dalam 3 langkah sederhana:
Secara lokal, gunakan scp untuk mentransfer .tar ke jarak jauh
Di server jarak jauh, muat gambar ke buruh pelabuhan:
sumber
Jika Anda tidak ingin menggunakan Docker Hub itu sendiri, Anda dapat meng-host repositori Docker Anda sendiri di bawah Artifactory oleh JFrog:
https://www.jfrog.com/confluence/display/RTF/Docker+Repositories
yang kemudian akan berjalan di server Anda sendiri.
Pemasok hosting lain tersedia, misalnya CoreOS:
http://www.theregister.co.uk/2014/10/30/coreos_enterprise_registry/
yang membeli quay.io
sumber