Apa perbedaan antara Perintah docker run
dan docker create
?
Saya biasanya menggunakan run
tetapi terkadang dalam dokumentasi yang saya lihat create
.
Docker --help
memberi tahu
create Create a new container
run Run a command in a new container
Apakah itu berarti itu run
digunakan ketika kita perlu meneruskan perintah ke penampung baru? Lalu apa tujuannya create
?
Secara teknis,
docker run
=docker create
+docker start
.sumber
docker run
=docker create
+docker start
+docker attach
. Tanpaattach
, penampung yang dimulai berjalan di latar belakangdocker create
perintah membuat wadah yang dapat ditulisi dari gambar dan mempersiapkannya untuk dijalankan .docker run
perintah membuat wadah (sama sepertidocker create
) dan memulainya .sumber
Jawaban lain telah mencakup ini, tetapi saya pikir saya akan menunjukkan baris perintah shell yang setara karena membuatnya sangat jelas:
sama dengan
Di sini,
docker create
digunakan untuk membuat wadah dari gambar bernama dan mengeluarkan id wadah yang dibuat dandocker start
digunakan untuk memulai wadah dengan id itu. The-a
pilihan menyebabkan terminal untuk melampirkan sehingga wadah berjalan di latar depan yang merupakan perilaku defaultdocker run
.Penampung yang telah dibuat tetapi tidak pernah dimulai akan memiliki
Created
status; ini bisa dilihat dengandocker container ls -a
.sumber
Saya baru mengenal buruh pelabuhan dan baru saja bermain dengannya;
Saya ambil adalah bahwa buruh pelabuhan menjalankan dasarnya melakukan hal berikut: (dalam urutan ..) docker membuat , buruh pelabuhan awal , buruh pelabuhan melampirkan , karena segera menempel ke shell aktif setelah Anda melakukan 'run' perintah.
sumber
Docker run pada dasarnya untuk menjalankan perintah di dalam container.
Di atas adalah untuk membuat terminal bash. Dan buat kami menggunakan perintah bash di container.
Pembuatan Docker adalah membuat kontainer dari Gambar Docker.
Di atas adalah untuk membuat buruh pelabuhan sebuah wadah dengan nama "docker-ubuntu" dari gambar "ubuntu"
sumber
docker run -it <Container name>
tanpa melakukan / bin / bash. Misalnya ruby akan menjalankan secara otomatis sebuah executable bernama irb. Juga, Anda dapat melakukan run -d, yang dilakukan dengan dockersamples / static-site yang tidak masuk. Jadi saya pikir itu tidak melakukan exec tetapi itu hanya memulainya.