Apa perbedaan antara buruh pelabuhan dan buruh pelabuhan

237

dockerdan docker-composesepertinya berinteraksi dengan buruh pelabuhan yang sama, apa perbedaan antara kedua alat?

Hafiz
sumber

Jawaban:

270

The dockercli digunakan ketika mengelola wadah individu pada mesin buruh pelabuhan. Ini adalah baris perintah klien untuk mengakses daemon buruh pelabuhan.

The docker-composecli dapat digunakan untuk mengelola aplikasi multi-kontainer. Ini juga memindahkan banyak opsi yang akan Anda masukkan pada docker runcli ke dalam docker-compose.ymlfile untuk digunakan kembali dengan lebih mudah. Ia bekerja sebagai "skrip" ujung depan di atas api buruh pelabuhan yang sama yang digunakan oleh docker, sehingga Anda dapat melakukan semuanya docker-composedengan dockerperintah dan banyak skrip shell. Lihat dokumentasi ini tentang komposisi buruh pelabuhan untuk detail lebih lanjut.


Pembaruan untuk Mode Swarm

Karena jawaban ini diposting, buruh pelabuhan telah menambahkan penggunaan kedua file docker-compose.yml. Dimulai dengan versi 3 format yml dan buruh pelabuhan 1,13, Anda dapat menggunakan yml dengan komposisi buruh pelabuhan dan juga untuk menentukan tumpukan dalam mode berkelompok buruh pelabuhan. Untuk melakukan yang terakhir, Anda perlu menggunakan docker stack deploy -c docker-compose.yml $stack_namealih-alih docker-compose uplalu mengelola tumpukan dengan dockerperintah alih-alih docker-composeperintah. Pemetaan adalah satu untuk satu di antara dua kegunaan:

  • Compose Project -> Swarm Stack: Sekelompok layanan untuk tujuan tertentu
  • Compose Service -> Swarm Service: Satu gambar dan konfigurasinya, mungkin ditingkatkan.
  • Compose Container -> Swarm Task: Satu kontainer dalam sebuah layanan

Untuk detail lebih lanjut tentang mode gerombolan, lihat dokumentasi mode gerombolan docker .

BMitch
sumber
76

docker mengelola wadah tunggal

docker-compose mengelola beberapa aplikasi kontainer

Penggunaan komposisi buruh pelabuhan membutuhkan 3 langkah:

  1. Tentukan lingkungan aplikasi dengan Dockerfile
  2. Tentukan layanan aplikasi di docker-compose.yml
  3. Jalankan docker-compose upuntuk memulai dan menjalankan aplikasi

menyusun buruh pelabuhan

Di bawah ini adalah contoh buruh pelabuhan-compose.yml diambil dari buruh pelabuhan dok :

services:
  web:
    build: .
    ports:
    - "5000:5000"
    volumes:
    - .:/code
    - logvolume01:/var/log
    links:
    - redis
  redis:
    image: redis
volumes:
  logvolume01: {}
JSON C11
sumber
3
Demi kejelasan, garis build: .di webbagian menunjuk ke lokasi Dockerfile dibuat pada langkah 1.
AndrewGentry