GNU/Linux >> Belajar Linux >  >> Ubuntu

Apa itu Docker Compose?

Pendahuluan

Mengembangkan aplikasi menggunakan Docker dapat menjadi tantangan saat menyulap beberapa layanan dan wadah. Pelajari tentang Docker Compose, alat yang akan membantu Anda menjalankan lingkungan aplikasi multi-kontainer.

Dalam tutorial ini, Anda akan mempelajari semua tentang Docker Compose, manfaat menggunakan alat ini, kasus penggunaan, dan fiturnya.

Apa itu Docker Compose?

Sebuah aplikasi dapat terdiri dari beberapa kontainer yang menjalankan layanan yang berbeda. Mungkin membosankan untuk memulai dan mengelola container secara manual, jadi Docker membuat alat yang berguna yang membantu mempercepat proses - Docker Compose.

Docker Compose adalah perangkat lunak yang digunakan untuk mendefinisikan dan menjalankan aplikasi Docker multi-kontainer. Itu dapat menangani beberapa wadah secara bersamaan di lingkungan produksi, pementasan, pengembangan, pengujian, dan CI. Oleh karena itu, gunakan Docker Compose untuk mengelola seluruh siklus hidup pengembangan perangkat lunak (SDLC).

Docker Compose bekerja dengan menerapkan aturan yang didefinisikan dalam docker-compose.yaml mengajukan. File YAML mengonfigurasi layanan aplikasi dan menyertakan aturan yang menentukan bagaimana Anda ingin menjalankannya. Dengan file di tempat, Anda dapat memulai, menghentikan, atau membangun kembali semua layanan menggunakan satu perintah. Selain itu, Anda dapat memeriksa status layanan, menampilkan keluaran log, dan menjalankan perintah satu kali.

Menginstal Docker Compose sederhana. Untuk petunjuk langkah demi langkah, lihat:

Cara Menginstal Docker Compose di Ubuntu 18.04Cara Menginstal Docker Compose di CentOS 7Cara Menginstal Docker Compose di Ubuntu 20.04

Kasus Penggunaan Penulisan Docker

Kasus penggunaan umum Docker Compose meliputi:

  • Lingkungan pengujian otomatis . Compose mendukung pengujian otomatis, yang merupakan bagian penting dari CI/CD karena dapat dengan mudah membuat dan menghancurkan lingkungan pengujian yang diperlukan. Pengembang dapat menentukan dan mengonfigurasi lingkungan yang diperlukan untuk menjalankan pengujian end-to-end otomatis menggunakan file Docker Compose yang sesuai.
  • Penerapan host tunggal . Di Docker Compose, container dirancang untuk berjalan pada satu host karena secara tradisional telah difokuskan pada alur kerja pengembangan dan pengujian.
  • Lingkungan Pengembangan . Compose adalah cara yang cepat dan sederhana untuk memulai proyek karena dapat dengan cepat membuat lingkungan pengembangan baru yang terisolasi. Perangkat lunak mendokumentasikan dan mengonfigurasi semua dependensi layanan aplikasi (termasuk database, cache, API layanan web, dll.). Ini memungkinkan Anda membuat dan memulai satu atau beberapa wadah untuk setiap ketergantungan menggunakan satu perintah.

Manfaat Docker Compose

Berikut adalah beberapa manfaat utama menggunakan Docker Compose:

  • Konfigurasi cepat dan sederhana. Berkat skrip YAML dan variabel lingkungan, Anda dapat dengan mudah mengonfigurasi atau memodifikasi layanan aplikasi.
  • Aman komunikasi internal. Compose membuat jaringan untuk dibagikan oleh semua layanan. Ini menambahkan lapisan keamanan ekstra untuk aplikasi karena layanan tidak dapat diakses secara eksternal.
  • Portabilitas dan dukungan CI/CD. Karena semua layanan didefinisikan di dalam file docker-compose, pengembang dapat dengan mudah mengakses dan membagikan seluruh konfigurasi. Dengan menarik file YAML dan kode sumber, mereka dapat meluncurkan lingkungan dalam hitungan menit. Ini berkontribusi untuk menyiapkan dan mengaktifkan jalur pipa CI/CD yang efisien.
  • Penggunaan sumber daya secara efisien. Docker Compose memungkinkan Anda untuk meng-host beberapa lingkungan terisolasi pada satu host. Menjalankan semuanya pada satu perangkat keras memungkinkan Anda menghemat banyak sumber daya. Fitur-fiturnya yang memungkinkannya meng-cache konfigurasi dan menggunakan kembali container yang ada juga berkontribusi pada efisiensi sumber daya.

Fitur Penulisan Docker

Ada beberapa fitur Docker Compose terkemuka yang memberikan manfaat yang disebutkan di atas.

Menghosting Beberapa Lingkungan Terisolasi pada Satu Host

Compose membuat lingkungan terisolasi satu sama lain pada satu host menggunakan nama proyek.

Secara default, nama proyek adalah nama dasar direktori proyek, sedangkan direktori proyek adalah direktori dasar file komposisi buruh pelabuhan. Anda dapat mengubah nilai default:

  • Setel nama proyek menggunakan -p opsi baris perintah atau COMPOSE_PROJECT_NAME variabel lingkungan.
  • Setel direktori proyek menggunakan --project-directory variabel lingkungan.

Anda dapat menggunakan fitur ini pada host dev untuk menjalankan salinan stabil dari setiap cabang fitur proyek Anda dengan membuat banyak salinan lingkungan dengan nama yang berbeda.

Jika Anda bekerja di server CI atau host bersama, Anda ingin memastikan build tidak saling mengganggu. Untuk melakukannya, setel nama proyek ke nomor build yang unik.

Variabel Lingkungan Pendukung

Anda dapat menyesuaikan container untuk lingkungan atau pengguna yang berbeda dengan menambahkan variabel lingkungan di file docker-compose. Itu memberi Anda lebih banyak fleksibilitas saat menyiapkan container dengan Compose, karena nilai variabel tidak di-hardcode dalam konfigurasi.

Nilai variabel dapat diatur di lingkungan shell (dari mana Anda menjalankan docker-compose ) atau dalam file .env (disimpan di direktori proyek). Secara default, penulisan Docker menerapkan nilai yang ditentukan dalam file .env. Namun, nilai yang ditetapkan di lingkungan shell menimpa nilai dari file .env.

Anda dapat menggunakan fitur ini untuk apa saja, mulai dari memberikan sandi dengan aman hingga menentukan versi perangkat lunak.

Menjaga Volume Data

Fitur hebat lainnya dari Docker Compose adalah ia menyimpan data yang digunakan oleh layanan. Oleh karena itu, Anda tidak perlu khawatir kehilangan data yang dibuat dalam container. Jika ada container dari proses sebelumnya, Compose akan menemukannya dan menyalin volumenya ke proses baru.

Menggunakan Kembali Kontainer yang Ada

Compose hanya membuat ulang container yang telah berubah sejak terakhir dijalankan. Jika tidak ada perubahan, itu menggunakan kembali wadah yang ada.

Fitur ini bergantung pada kemampuan perangkat lunak untuk meng-cache konfigurasi container, memungkinkan Anda untuk mengatur layanan Anda lebih cepat.

Perintah Dasar Penulisan Docker

Sintaks dasar untuk menjalankan perintah Docker Compose adalah:

docker-compose [command]

Di bawah ini Anda akan menemukan beberapa perintah Docker Compose paling dasar dan kegunaannya.

Perintah Deskripsi
docker-compose --help tampilkan bantuan, petunjuk penggunaan dan argumen untuk perintah docker-compose
docker-compose build cari semua layanan yang berisi build: pernyataan dalam file docker-compose.yml dan jalankan docker build untuk masing-masing
docker-compose run jalankan perintah satu kali terhadap layanan
docker-compose up membangun, (kembali) membuat, memulai, dan melampirkan wadah untuk layanan
docker-compose -f [command] tentukan lokasi file konfigurasi docker-compose dengan menambahkan -f bendera
docker-compose start mulai penampung yang ada untuk layanan
docker-compose stop berhenti menjalankan container (tanpa menghapusnya)
docker-compose pause jeda penampung layanan yang sedang berjalan
docker-compose unpause membatalkan jeda penampung layanan yang dijeda
docker-compose down hentikan penampung (dan hapus penampung, jaringan, volume, dan gambar)
docker-compose ps daftar container di dalam file konfigurasi docker-compose
docker-compose images daftar gambar yang digunakan oleh wadah yang dibuat
docker-compose ls daftar menjalankan proyek Compose

Bagaimana Cara Menggunakan Docker Compose?

Ada tiga langkah untuk menggunakan Compose:

1. Langkah pertama adalah membuat Dockerfile untuk mendefinisikan lingkungan aplikasi. File tersebut membuat image Docker, yang akan digunakan sebagai basis untuk container.

2. Selanjutnya, Anda perlu mendefinisikan layanan dalam file Compose. Buat file baru di direktori proyek dengan nama docker-compose.yml dan tentukan layanan Anda menggunakan sintaks YAML. Contoh file tersebut akan mencakup konten berikut:

version: "3.9"
services:
  web:
    build: .
    ports:
      - "5000:5000"
    volumes:
      - .:/code
      - logvolume01:/var/log
    links:
      - redis
  redis:
    image: redis
volumes:
  logvolume01: {}

3. Terakhir, jalankan dan kelola aplikasi menggunakan Docker Compose CLI. Anda dapat menjalankan satu docker-compose up perintah untuk memulai seluruh aplikasi dalam sebuah instance.


Ubuntu
  1. Apa yang Baru di Docker Compose v2?

  2. Panduan Cepat untuk Menggunakan Docker Compose

  3. Cara Menginstal Docker Compose di Ubuntu 18.04

  1. Apa itu Docker (dan wadah Linux?)

  2. Cara Menggunakan Tulis Docker

  3. Mengapa Deis dan apa itu?

  1. Apa itu Doker?

  2. Cara Menginstal Docker Compose di Ubuntu 18.04

  3. Mengatur Hostname di Docker Compose