Apa perbedaan antara docker-compose up dan docker-compose start?

124

Kapanpun saya mengeksekusi

docker-compose start 
docker-compose ps

Saya melihat container saya dengan status "UP". Jika aku melakukan

docker-compose up -d

Saya akan melihat lebih banyak verbose tetapi akan memiliki status yang sama. Apakah ada perbedaan antara kedua perintah tersebut?

Michael Villeneuve
sumber

Jawaban:

166

docker-compose start
( https://docs.docker.com/compose/reference/start/ )

Memulai penampung yang ada untuk layanan.

docker-compose up
( https://docs.docker.com/compose/reference/up/ )

Membangun, (kembali) membuat, memulai, dan melampirkan ke kontainer untuk layanan.

Kecuali jika sudah berjalan, perintah ini juga memulai semua layanan terkait.

The docker-compose upperintah agregat output dari setiap kontainer (dasarnya berjalan docker-compose logs -f). Saat perintah keluar, semua penampung dihentikan. Menjalankan docker-compose up -dmemulai penampung di latar belakang dan membiarkannya berjalan.

Jika sudah ada container untuk layanan, dan konfigurasi atau gambar layanan diubah setelah pembuatan container, docker-compose upambil perubahannya dengan menghentikan dan membuat ulang container (mempertahankan volume yang terpasang). Untuk mencegah Compose mengambil perubahan, gunakan --no-recreateflag.

Untuk referensi CLI lengkap:
https://docs.docker.com/compose/reference/

Luiz Lago
sumber
3
tautan yang diperbarui ke referensi CLI pembuat-galangan : docs.docker.com/compose/reference * tulis- galangan : docs.docker.com/compose/reference/up * mulai penulisan galangan
michael
18

Di buruh pelabuhan Pertanyaan yang sering diajukan ini dijelaskan dengan sangat jelas:

Apa perbedaan antara Up, Run, dan Start?

Biasanya, Anda menginginkan docker-compose up. Gunakan upuntuk memulai atau memulai ulang semua layanan yang ditentukan di a docker-compose.yml. Dalam mode "terpasang" default, Anda melihat semua log dari semua penampung. Dalam mode "terlepas" ( -d), Tulis keluar setelah memulai penampung, tetapi penampung terus berjalan di latar belakang.

The docker-compose runperintah untuk menjalankan “satu-off” atau “adhoc” tugas. Ini memerlukan nama layanan yang ingin Anda jalankan dan hanya memulai container untuk layanan yang bergantung pada layanan yang berjalan. Gunakan run untuk menjalankan pengujian atau melakukan tugas administratif seperti menghapus atau menambahkan data ke wadah volume data. The runperintah bertindak seperti docker run -tidalam hal membuka terminal interaktif untuk wadah dan mengembalikan status keluar cocok dengan status keluar dari proses dalam wadah.

The docker-compose startPerintah ini berguna hanya untuk wadah me-restart yang sebelumnya dibuat, tetapi dihentikan. Itu tidak pernah membuat wadah baru.

Supun Praneeth
sumber
bagaimana perintah restart berbeda dari yang ini - jalankan, mulai, naik?
Nag