Saat membangun gambar buruh pelabuhan yang biasa Anda gunakan docker build .
.
Tetapi saya telah menemukan bahwa Anda dapat menentukan --pull
, sehingga seluruh perintah akan terlihat sepertidocker build --pull .
Saya tidak yakin tentang tujuan --pull
. Dokumentasi resmi Dockers mengatakan "Selalu berusaha untuk menarik versi yang lebih baru dari gambar", dan saya tidak yakin apa artinya ini dalam konteks ini.
Anda menggunakan docker build
untuk membangun gambar baru, dan akhirnya menerbitkannya di suatu tempat ke registri wadah. Mengapa Anda ingin menarik sesuatu yang belum ada?
Saya mengharapkan sesuatu yang "sederhana" seperti ini dapat dengan mudah ditemukan di web, tetapi sepertinya tidak ada yang memiliki pertanyaan yang sama seperti ini. Satu-satunya hit nyata di google mengacu pada dokumen resmi Dockers, yang saya (seperti yang dinyatakan di atas) tidak mengerti.
Terima kasih atas bantuan Anda!
ubuntu:bionic
gambar, karena (jelas) tidak memiliki versi yang dilampirkan, tetapi akan tetap berbeda setiap kali mereka mempublikasikan gambar baru. Semua masuk akal. Terima kasih!ubuntu:0.1.0
contoh, dan mereka menerbitkan gambar baru tetapi dengan versi yang sama yaituubuntu:0.1.0
- apakah ini berartidocker build --pull
akan mengunduh ulang seluruh gambar baru lagi? (yang akan menjadi pilihan kebanyakan orang, saya kira)Jawaban sederhana
docker build
digunakan untuk membangun dari dockerfile lokal.docker pull
digunakan untuk menarik dari hub buruh pelabuhan. Jika Anda menggunakan buruh pelabuhan tanpa file buruh pelabuhan itu membuat kesalahan.Ketika Anda menentukan
--pull
atau:latest
buruh pelabuhan akan mencoba mengunduh versi terbaru (jika ada)Pada dasarnya, jika Anda menambahkan --pull, itu akan mencoba untuk menarik versi terbaru setiap kali dijalankan.
sumber
Docker memungkinkan melewati
--pull
benderadocker build
, misalnyadocker build . --pull -t myimage
. Ini adalah cara yang disarankan untuk memastikan bahwa build selalu menggunakan gambar kontainer terbaru meskipun versi tersedia secara lokal. Namun satu poin tambahan yang layak disebutkan:Untuk memastikan bahwa bangunan Anda sepenuhnya dibangun kembali, termasuk memeriksa gambar dasar untuk pembaruan, gunakan opsi berikut saat membangun:
--no-cache
- Ini akan memaksa pembangunan kembali lapisan yang sudah tersedia.Perintah penuh akan terlihat seperti ini:
docker build . --pull --no-cache --tag myimage:version
Opsi yang sama tersedia untuk
docker-compose
:docker-compose build --no-cache --pull
sumber
--no-cache
. Jika gambar dasar diperbarui (dan--pull
mendapatkan versi baru) yang secara otomatis membatalkan cache; sama jika AndaCOPY
berbeda kode yang akan membatalkan cache. Satu-satunya hal yang biasanya akan memengaruhi adalah jika Anda melakukan sesuatu sepertiapt-get install
paket yang dihosting jaringan, dalam hal ini--no-cache
akan menyebabkannya memeriksa versi yang lebih baru bahkan jika gambar dasar belum diperbarui.