Saya meluncurkan kontainer buruh pelabuhan dari gambar dengan perintah berikut:
$ docker run -d myimage /bin/bash -c "mycommand"
Setelah "mycommand"
selesai, kontainer dihentikan (saya kira dihentikan), tetapi tidak dihapus, karena saya dapat melihatnya dengan perintah ini:
$ docker ps -a
Apakah ada cara untuk restart
penampung ini dengan parameter yang sama dan menyimpan data yang dihasilkan mycommand
?
Jawaban:
Ya, ketika perintah awal menyelesaikan eksekusinya maka kontainer akan berhenti.
Anda dapat memulai penampung yang dihentikan menggunakan:
docker start container_name
Jika Anda ingin melihat output dari perintah Anda, maka Anda harus menambahkan
-ai
opsi:docker start -ai container_name
PS. ada
docker restart container_name
tapi yang digunakan untuk memulai kembali wadah yang sedang berjalan - Saya yakin itu bukan kasus Anda.sumber
docker exec -it container_name bash
. Ketika saya menjalankan perintah dari dalam wadah, saya dapat melihat mengapa implementasi awal skrip saya gagal dan saya memperbaikinya.start
dengansleep
? Saya tidak bisa mencapai titik di mana saya bisa berlariexec
Pertama,
$ docker ps -a
tampilkan semua penampung (yang berjalan dan yang dihentikan), jadi itulah alasan Anda tidak melihat penampung yang dihentikan terdaftar.Kedua, Anda dapat dengan mudah memulai penampung yang berhenti berjalan:
Setelah penampung dimulai, Anda dapat menjalankan perintah Anda dengan:
Barang-barang yang Anda buat di penampung Anda akan tetap berada di dalam penampung Anda selama masih ada. Jika Anda ingin menyimpan data meskipun wadah Anda dihapus, Anda dapat menggunakan volume .
sumber
Harus
sumber
restart
untuk wadah yang sudah berjalan