Dalam praktiknya untuk memulai wadah saya lakukan:
docker run a8asd8f9asdf0
Jika demikian, apa yang terjadi:
docker start
melakukan?
Dalam manual itu tertulis
Mulai satu atau lebih kontainer yang berhenti
execute?
Dalam praktiknya untuk memulai wadah saya lakukan:
docker run a8asd8f9asdf0
Jika demikian, apa yang terjadi:
docker start
melakukan?
Dalam manual itu tertulis
Mulai satu atau lebih kontainer yang berhenti
execute?
Jawaban:
Ini adalah pertanyaan yang sangat penting dan jawabannya sangat sederhana, tetapi mendasar:
docker run IMAGE_ID dan tidak docker run CONTAINER_IDdocker stop CONTAINER_ID, Anda dapat meluncurkan kembali wadah yang sama dengan perintah docker start CONTAINER_ID, dan data dan pengaturan akan sama.docker rm container_id). Di sisi lain, volume data selamat dari penghapusan wadah kecuali jika -vopsi secara eksplisit diberikan pada baris perintah. Lokasi volume pada sistem host dapat diperiksa secara langsung. Lihat artikel ini
& di akhir runbaris perintah? Saya membutuhkannya sebagai layanan (24 jam) yang tak terhitung jumlahnya
runmenjalankan gambarstartmemulai sebuah wadah .The docker rundoc tidak menyebutkan:
The
docker runPerintah pertama menciptakan wadah lapisan ditulisi atas gambar yang ditentukan, dan kemudian mulai menggunakan perintah yang ditentukan.Artinya, buruh pelabuhan menjalankan setara dengan API
/containers/createitu/containers/(id)/start.
Anda tidak menjalankan kontainer yang sudah ada, Anda perlu buruh pelabuhan (karena buruh pelabuhan 1.3) .
Anda dapat memulai kembali wadah yang sudah keluar .
-iuntuk docker rununtuk proses interaktif? Maksud saya, buruh pelabuhan membutuhkan gambar untuk menjalankan wadah.
Penjelasan dengan contoh:
Anggap Anda memiliki gambar permainan (iso) di komputer Anda.
Saat Anda run(me-mount gambar Anda sebagai drive virtual), drive virtual dibuat dengan semua konten game di drive virtual dan file instalasi game diluncurkan secara otomatis. [Menjalankan gambar buruh pelabuhan Anda - membuat wadah dan kemudian memulainya.]
Tetapi ketika Anda stop(mirip dengan buruh pelabuhan berhenti) itu, drive virtual masih ada tetapi menghentikan semua proses. [Seperti wadah ada sampai tidak dihapus]
Dan ketika Anda melakukannya start(mirip dengan docker start), dari drive virtual file game memulai eksekusi. [memulai wadah yang ada]
Dalam contoh ini - Gambar permainan adalah gambar Docker Anda dan drive virtual adalah wadah Anda.
Jawaban daniele3004 sudah cukup bagus.
Hanya formula cepat dan kotor untuk orang-orang seperti saya yang campur aduk rundan startdari waktu ke waktu:
docker run [...]= docker pull [...]+docker start [...]
"...docker run is equivalent to the API /containers/create then /containers/(id)/start.(sumber: docs.docker.com/engine/reference/commandline/run )
runperintah menciptakan sebuah wadah dari gambar dan kemudian memulai proses root pada wadah ini. Menjalankannya dengan run --rmbendera akan menyelamatkan Anda dari kesulitan mengeluarkan wadah mati yang tidak berguna sesudahnya dan akan memungkinkan Anda untuk mengabaikan keberadaandocker start dan docker removesekaligus.
run perintah melakukan beberapa hal berbeda:
docker run --name dname image_name bash -c "whoami"
docker psbash -c "whoami" . Jika seseorang berjalan docker run --name dname image_nametanpa perintah untuk menjalankan kontainer akan langsung berhenti.docker removesebelum meluncurkan wadah dengan nama yang sama.Bagaimana cara menghapus wadah setelah dihentikan secara otomatis? Tambahkan--rmbendera kerunperintah:
docker run --rm --name dname image_name bash -c "whoami"
Bagaimana cara menjalankan banyak perintah dalam satu wadah? Dengan mencegah proses root dari sekarat. Ini dapat dilakukan dengan menjalankan beberapa perintah yang tidak berguna di mulai dengan--detachedflag dan kemudian menggunakan "eksekusi" untuk menjalankan perintah yang sebenarnya:
docker run --rm -d --name dname image_name tail -f /dev/null
docker exec dname bash -c "whoami"
docker exec dname bash -c "echo 'Nnice'"
Mengapa kita membutuhkannya docker stop? Untuk menghentikan wadah yang tersisa yang kami luncurkan di cuplikan sebelumnya dengan perintah tanpa akhirtail -f /dev/null.