Saya mencoba buruh pelabuhan untuk pertama kalinya dan belum memiliki "model mental". Total pemula.
Semua contoh yang saya lihat telah menyertakan --rm
bendera untuk dijalankan, seperti
docker run -it --rm ...
docker container run -it --rm ...
Pertanyaan:
Mengapa perintah ini menyertakan --rm
bendera? Saya akan berpikir bahwa jika saya mengalami masalah dalam menyiapkan atau mengunduh wadah dengan barang bagus di dalamnya, mengapa harus menghapusnya? Saya ingin menyimpannya untuk digunakan lagi.
Jadi, saya tahu saya salah paham tentang buruh pelabuhan.
docker
docker-container
matchingmoments
sumber
sumber
--rm
menghapus penampung yang dihentikan (yang dibuatdocker run
), bukan gambarnya (apa yang Anda unduh).docker run --help
semestinya bermanfaat. Jika Anda tidak ingin menghapus kontainer , Anda dapat meneruskannya--rm
dan itu untuk secara otomatis membersihkan penampung dan menghapus sistem file saat penampung keluar dan itu tidak berarti menghapus barang dari penampung.Jawaban:
Penampung hanyalah contoh gambar yang Anda gunakan untuk menjalankannya. Kondisi pikiran saat membuat aplikasi dalam container bukanlah dengan mengambil container ubuntu yang segar dan bersih misalnya, dan mendownload aplikasi dan konfigurasi yang Anda inginkan di dalamnya, dan kemudian membiarkannya berjalan.
Anda harus memperlakukan kontainer sebagai instance aplikasi Anda, tetapi aplikasi Anda disematkan ke dalam gambar. Penggunaan yang tepat akan membuat gambar khusus, di mana Anda menyematkan semua file, konfigurasi, variabel lingkungan, dll, ke dalam gambar. Baca lebih lanjut tentang Dockerfile dan cara melakukannya di sini
Setelah Anda melakukannya, Anda memiliki gambar yang berisi segalanya, dan untuk menggunakan aplikasi Anda, Anda cukup menjalankan gambar dengan pengaturan port yang tepat atau variabel dinamis lainnya, menggunakan
docker run <your-image>
Menjalankan container dengan
--rm
flag bagus untuk container yang Anda gunakan sangat singkat hanya untuk menyelesaikan sesuatu, misalnya, mengompilasi aplikasi Anda di dalam container, atau hanya menguji sesuatu yang berhasil, dan kemudian Anda tahu itu adalah container berumur pendek dan Anda beri tahu daemon Docker Anda bahwa setelah selesai berjalan, hapus semua yang terkait dengannya dan hemat ruang disk.sumber
--rm
saat pengguna menutup jendela terminal. yaitu tidak sengaja dijalankanexit
di shell kontainer, tetapi hanya menutup jendela GUI terminal. Saya perhatikan bahwa kontainer tidak dihapus dalam kasus ini.Bendera
--rm
digunakan saat Anda memerlukan penampung untuk dihapus setelah tugasnya selesai.Ini cocok untuk pengujian kecil atau tujuan POC dan menghemat sakit kepala untuk pekerjaan rumah tangga.
sumber
dari https://docs.docker.com/engine/reference/run/#clean-up---rm
Dengan kata kecil: sangat berguna untuk menjaga kebersihan host dari kontainer yang berhenti dan tidak digunakan.
sumber
Saya gunakan
--rm
saat menghubungkan ke menjalankan kontainer untuk melakukan beberapa tindakan seperti backup database atau menyalin file. Berikut ini contohnya:docker run -v $(pwd):/mnt --link app_postgres_1:pg --rm postgres:9.5 pg_dump -U postgres -h pg -f /mnt/docker_pg.dump1 app_db
Di atas akan menghubungkan wadah yang sedang berjalan bernama 'app_postgres_1' dan membuat cadangan. Setelah perintah pencadangan selesai, penampung dihapus sepenuhnya.
sumber