Membuat image Docker yang perlu Anda bagikan dengan rekan kerja? Inilah cara Anda dapat mendistribusikan gambar tanpa penerima perlu menjalankan docker build
sendiri.
Berbagi gambar yang dibuat sebelumnya alih-alih Dockerfile
memungkinkan Anda memastikan rekan Anda menjalankan perangkat lunak yang sama persis. Menjalankan kembali build dapat menghasilkan lingkungan yang agak berbeda. Anda memiliki dua opsi untuk mendistribusikan gambar Anda, bergantung pada situasinya.
Gunakan Registri Docker
Cara termudah untuk membagikan gambar Docker adalah dengan mendorongnya ke registri Docker. Fungsionalitas ini sepenuhnya terintegrasi ke dalam Docker CLI. Anda tidak perlu melakukan transfer file manual saat menggunakan metode ini.
Registri default adalah Docker Hub. Ini memungkinkan Anda untuk berbagi gambar secara publik dan memberi Anda satu repositori pribadi juga. Buat akun di Docker Hub, lalu jalankan docker login
di terminal Anda. Berikan detail akun Anda untuk menghubungkan Docker CLI ke akun Anda.
Selanjutnya buat gambar Anda seperti biasa, menggunakan docker build
. Tambahkan tag yang dimulai dengan nama pengguna Docker Hub Anda:
docker build -t my-account/my-image:latest .
Kemudian gunakan docker push
perintah untuk mendorong gambar yang diberi tag ke Docker Hub:
docker push my-account/my-image:latest
Sekarang gambar Anda disimpan dengan aman di Docker Hub. Pengguna lain akan dapat menariknya ke bawah menggunakan docker pull
atau docker run
perintah. Anda selesai membagikan gambar Anda!
Untuk penggunaan di dunia nyata, Docker Hub mungkin tidak cukup. Jika Anda adalah bagian dari tim pengembangan, Anda mungkin ingin menyimpan gambar di server Anda sendiri, bukan di registri Hub publik. Anda dapat membuat server registri yang dihosting sendiri sebagai gantinya untuk mendapatkan penyimpanan pribadi yang sepenuhnya kompatibel dengan docker push
dan docker pull
perintah. Ini memungkinkan Anda berbagi gambar dengan mudah dengan siapa saja yang dapat mengakses registri pribadi Anda.
Mengekspor Gambar
Jika menggunakan registri bukan merupakan opsi, Anda dapat mengekspor arsip gambar Docker secara manual. Fungsionalitas ini juga dibangun ke dalam Docker CLI. Buat gambar Anda lalu gunakan docker save
perintah untuk mendapatkan tar
arsip isinya:
docker save my-image:latest > my-image.tar
Ekspor mungkin memerlukan beberapa saat untuk diselesaikan. Docker akan menyertakan semua yang diperlukan untuk membuat ulang gambar – hanya itu lapisan di Dockerfile
Anda , serta lapisan yang diwarisi dari gambar dasar Anda. Arsip juga akan berisi informasi tentang tag yang terkait dengan gambar.
Karena outputnya adalah tar
simple sederhana file, Anda sekarang bebas mendistribusikannya dengan cara apa pun yang Anda pilih. Arsip bisa sangat besar sehingga Anda biasanya akan lebih baik dengan mengunggahnya ke server file atau penyedia penyimpanan cloud.
Untuk menggunakan gambar yang diekspor, jalankan docker load
memerintah. Ini menerima tar
arsip yang dihasilkan oleh docker save
sebagai aliran masukan. Docker akan memuat konten arsip dan menambahkannya ke daftar gambar lokal Anda.
docker load < my-image.tar
Sekarang Anda akan melihat gambar yang baru diimpor di docker images
keluaran. Anda siap untuk memulai container baru dengan docker run
.
Mengekspor dan mengimpor gambar menambahkan beberapa langkah tambahan untuk menggunakan registri Docker. Anda harus mentransfer file secara manual antar klien. Akibatnya, pendekatan ini kurang cocok untuk penggunaan yang sering, meskipun ada manfaatnya juga.
Mengonversi gambar menjadi tar
arsip dapat berguna untuk penyimpanan jangka panjang. Jika Anda kehabisan ruang di server registri Anda, mengarsipkan gambar lama dan mengunggah tars
mereka untuk membuat cadangan penyimpanan file bisa menjadi cara yang hemat biaya untuk mendapatkan kembali beberapa kapasitas. Anda masih dapat memulihkan gambar tersebut jika diperlukan di masa mendatang.
Bagaimana dengan “ekspor buruh pelabuhan”?
Docker memiliki perintah terkait ekspor lainnya, docker export
. Ini tidak boleh disamakan dengan docker save
. Sedangkan save
bekerja dengan gambar, export
sebenarnya mengelola kontainer individu .
docker export
akan menghasilkan tar
arsip sistem file container. Ini dapat digunakan untuk memulihkan replika wadah di komputer lain. Jika Anda memeriksa konten arsip, Anda akan melihat itu hanya sistem file root Linux biasa, dengan direktori seperti /bin
, /etc
dan /usr
.
docker export my-container > my-container.tar
docker export
berguna jika Anda ingin memotret wadah untuk pemulihan nanti. Namun, arsip penampung tidak diimpor dengan cara yang mungkin Anda harapkan pertama kali. Karena container mewakili lingkungan yang aktif dan berjalan, Anda tidak dapat "mengimpor" satu secara langsung. Sebagai gantinya, mengimpor arsip penampung akan membuat baru gambar.
docker import my-container.tar my-image:latest
Dalam contoh ini, Docker akan mengambil sistem file di my-container.tar
dan secara otomatis membuat gambar baru bernama my-image:latest
. Ini akan memiliki sistem file yang sama tetapi gambar dasar atau konfigurasi Docker tidak sama dengan penampung asli yang Anda ekspor.
TERKAIT: Cara Memulai dengan Docker Container Registry Github yang Baru
Ringkasan
Docker memudahkan berbagi gambar aplikasi dan lingkungan pengembangan dengan kolaborator Anda. Biasanya yang terbaik adalah mendorong gambar ke repositori terpusat yang dapat diambil orang lain. Dalam beberapa skenario, mungkin lebih masuk akal untuk mengekspor gambar ke arsip yang Anda distribusikan secara manual.
Docker juga memungkinkan Anda mengekspor sistem file penampung untuk pemulihan nanti ke gambar. Hati-hati saat menggunakan ini karena ini bukan rekonstruksi yang tepat dan tidak semua data sistem file disertakan. Setiap volume yang dipasang ke penampung asli tidak akan disertakan dalam arsip sistem file, jadi Anda harus mengambil langkah-langkah untuk mencadangkannya secara terpisah.