Saya punya docker-compose.yml
yang berisi beberapa kontainer. Tiga di antaranya untuk aplikasi saya (klien, server dan database) dan sisanya untuk berbagai alat dev (mis. Psql, npm, manage.py, dll). Ketika saya melakukan docker-compose up
semuanya dimulai, tetapi saya hanya ingin tiga yang utama untuk memulai. Karena tautan yang saya tentukan, saya dapat memulai hanya tiga dengan docker-compose up client
tetapi kemudian output hanya dari satu wadah itu. Jadi, apakah ada cara untuk melakukan salah satu dari yang berikut:
- Katakan kepada buruh pelabuhan-susun wadah mana yang harus dimulai dengan
docker-compose up
- Dapatkan output dari semua kontainer yang terhubung dari
docker-compose up client
docker
docker-compose
aquavitae
sumber
sumber
docker-compose up [options] [SERVICE...]
memungkinkan Anda memulai bagian layanan apa pun yang ingin Anda daftarkan.Jawaban:
Anda dapat memulai wadah dengan menggunakan:
Ini akan menjalankan kontainer di latar belakang dan output akan tersedia dari
dan itu akan terdiri dari semua kontainer yang Anda mulai
sumber
Untuk memulai layanan tertentu yang ditentukan dalam file komposisi buruh pelabuhan Anda. misalnya jika Anda memiliki buruh pelabuhan-compose.yml
diberi file penulisan seperti:
Beberapa kali Anda ingin memulai mySQL saja (kadang-kadang Anda hanya ingin mengisi basis data) sebelum Anda memulai seluruh rangkaian.
sumber
sudo
sebelumnyadocker-compose ...
? Itu tidak perlu, kan?sudo docker-compose up db
bukannyasudo docker-compose start db
start
mengasumsikan wadah sudah ada dan memulainya,up
akan menarik gambar jika perlu, membuat wadah jika perlu, kemudian mulai wadah.Oh, cukup dengan ini:
sumber
Satu solusi yang baik adalah menjalankan hanya layanan yang diinginkan seperti ini:
dan file services.txt terlihat seperti ini:
tentu saja jika dependancy (depend_on), perlu menjalankan layanan terkait bersama.
--build adalah opsional, misalnya.
sumber
Sejak
docker-compose
v1.5 dimungkinkan untuk mengirimkan beberapadocker-compose.yml
file dengan-f
flag . Ini memungkinkan Anda untuk membagi alat dev Anda menjadi terpisahdocker-compose.yml
yang kemudian Anda hanya sertakan berdasarkan permintaan:Untuk diskusi mendalam tentang hal ini lihat buruh pelabuhan / komposisi # 1896 .
Saya telah membuat permintaan tarik untuk menambahkan fungsionalitas untuk mencapai hal ini dengan lebih mudah ( buruh pelabuhan / komposisi # 7548 ) tetapi karena ini memerlukan perubahan dalam spesifikasi file penulisan, sekarang ini dibahas di compose-spec / compose-spec # 87 .
sumber
Anda biasanya tidak ingin melakukan ini. Dengan Docker Compose Anda menentukan layanan yang membuat aplikasi Anda.
npm
danmanage.py
hanya perintah manajemen. Anda tidak perlu wadah untuk mereka. Jika perlu, katakanlah buat tabel database Andamanage.py
, yang harus Anda lakukan adalah:Anggap saja sebagai satu-satunya dino yang digunakan Heroku.
Jika Anda benar-benar perlu memperlakukan perintah manajemen ini sebagai wadah terpisah (dan juga menggunakan Docker Compose untuk ini), Anda bisa membuat
.yml
file terpisah dan memulai Docker Compose dengan perintah berikut:sumber