GNU/Linux >> Belajar Linux >  >> Panels >> Docker

Panduan Cepat untuk Menggunakan Docker Compose

Docker Compose adalah alat yang terintegrasi secara native dengan Docker, dan membuat pengelolaan aplikasi multi-kontainer menjadi mudah.

Manfaat yang diberikan Docker Compose sangat banyak, beberapa di antaranya meliputi:

  1. Mengelola Jaringan Kontainer dengan Mudah: Menghubungkan dua kontainer melalui jaringan Docker sangat sederhana di Docker Compose, sesederhana mendefinisikan jaringan dan memberi tahu kontainer untuk menghubungkannya. Selain itu, Docker Compose dapat secara otomatis membuat dan menghancurkan jaringan saat Anda membuat dan menghancurkan container itu sendiri.
  2. Ketergantungan Penampung: Anda memiliki wadah Docker yang membutuhkan wadah Docker lain untuk aktif dan berjalan, katakanlah, sebuah database. Docker Compose memungkinkan Anda untuk menentukan dependensi untuk sebuah wadah, yang mengharuskan dependensi untuk aktif dan berjalan sebelum hal lain dimulai.
  3. Pengaturan yang Dapat Direproduksi: Karena penyiapan container akan ditentukan bahkan sebelum apa pun dibuat, hal ini memungkinkan reproduktifitas penyiapan, membuatnya lebih mudah untuk mentransfernya ke sistem lain. Meskipun Anda secara teoritis dapat melakukan hal seperti itu dalam sesuatu seperti Bash, hal itu dapat membuat segalanya menjadi kurang fleksibel dan lebih sulit untuk beradaptasi dengan perubahan.

Menginstal Docker Compose di Linux

Docker Compose sudah tersedia di sebagian besar repositori distribusi.

Anda dapat menginstal Docker Compose di Ubuntu dan distribusi berbasis Debian menggunakan perintah berikut:

sudo apt install docker-compose

Di Arch dan Manjaro, Anda dapat menggunakan:

sudo pacman -S docker-compose

Di Fedora, Anda dapat menggunakan perintah dnf:

sudo dnf install docker-compose

Anda mungkin perlu sedikit lebih berusaha untuk menginstal Docker Compose di CentOS.

Untuk distribusi lain, Anda selalu dapat melihat dokumen penginstalan untuk informasi tentang cara mendapatkan paket yang dibutuhkan.

Membuat File Penulisan Docker Pertama Kami

Panduan ini mengasumsikan Anda sudah terbiasa dan nyaman dengan alat CLI buruh pelabuhan. Jika tidak, pertimbangkan untuk melakukannya, karena kemungkinan besar Anda akan mengalami cegukan sederhana.

File Docker Compose disimpan dengan nama docker-compose.yml , dan secara otomatis ditemukan saat Anda menjalankan docker-compose perintah dalam direktori yang sama. Sintaksnya berbentuk, Anda dapat menebaknya, YAML.

Kami memiliki tutorial khusus tentang dasar-dasar YAML jika Anda tertarik untuk mempelajarinya.

Dasar-Dasar YAML Yang Harus Diketahui Setiap Insinyur DevOpsSebagai seorang insinyur DevOps, Anda akan banyak berurusan dengan file YAML. Itu selalu merupakan ide yang baik untuk memahami sintaks YAML dasar. Buku Pegangan LinuxRakesh Jain

Kita akan mulai dengan file yang membuat instance Nextcloud, lalu membahas bagaimana sebenarnya hal itu.

Hal pertama yang pertama, Anda perlu membuat file penulisan. Buat direktori kosong di sistem Anda, dan buat docker-compose.yml berkas.

Selanjutnya, isi file dengan konten berikut:

version: '3.5'
services:
  nextcloud_app:
    container_name: nextcloud_app
    image: nextcloud
    restart: unless-stopped
    networks:
      - nextcloud
    ports:
      - 80:80
    volumes:
      - ./data/app:/var/www/html
    depends_on:
      - nextcloud_mariadb

  nextcloud_mariadb:
    container_name: nextcloud_mariadb
    image: mariadb
    restart: unless-stopped
    networks:
      - nextcloud
    volumes:
      - ./data/mariadb:/var/lib/mysql
    environment:
      MARIADB_ROOT_PASSWORD: 'mariadb'

networks:
  nextcloud:
    name: nextcloud_docker_network

Sekarang yang harus Anda jalankan hanyalah docker-compose up -d , dan Anda akan berhasil menerapkan Nextcloud dengan Docker.

Berikut halaman login Nextcloud.

Memahami File Penulisan Docker kami

Sekarang setelah Anda melihat bahwa file tersebut benar-benar berfungsi, mari kita bahas isi file tersebut sehingga Anda dapat benar-benar memahami apa yang sebenarnya dilakukannya.

Tag 'versi'

version: '3.5'

Hal pertama yang pertama, version menandai. Ini hanya menentukan versi format file Docker Compose, karena versi yang berbeda akan memiliki sintaks yang berbeda. Biasanya Anda ingin menyimpan ini ke versi terbaru, tetapi tidak harus, yang dapat membantu jika Anda memiliki beberapa file lama.

Tag 'layanan'

services:
  nextcloud_app:
    container_name: nextcloud_app
    image: nextcloud
    restart: unless-stopped
    networks:
      - nextcloud
    ports:
      - 80:80
    volumes:
      - ./data/app:/var/www/html
    depends_on:
      - nextcloud_mariadb

  nextcloud_mariadb:
    container_name: nextcloud_mariadb
    image: mariadb
    restart: unless-stopped
    networks:
      - nextcloud
    volumes:
      - ./data/mariadb:/var/lib/mysql
    environment:
      MARIADB_ROOT_PASSWORD: 'mariadb'

Selanjutnya, Anda melihat services menandai. Ini memulai daftar untuk semua aplikasi yang dibuat saat docker-compose up -d dijalankan.

Diikuti dengan ini kami memulai daftar untuk wadah pertama kami, nextcloud_app . Ini berfungsi sebagai pengidentifikasi untuk aplikasi, yang dapat digunakan oleh perintah Docker Compose lainnya. Perhatikan bahwa ini bukan nama wadah itu sendiri - yang ditentukan di bagian selanjutnya.

Sekarang, Anda mulai mendefinisikan segala sesuatu tentang wadah Anda. Berikut ini adalah ulasan tentang arti semua bidang, meskipun sebagian besar sudah cukup jelas jika Anda sudah mengetahui cara menggunakan Docker:

  • container_name - Menentukan nama wadah. Setara dengan --name pilihan.
  • image - Menentukan gambar apa yang akan diambil untuk penampung.
  • restart - Mendefinisikan kebijakan restart untuk wadah. Setara dengan --restart .
  • networks - Mendefinisikan jaringan yang terhubung ke wadah. Jaringan ini bisa dibuat atau sudah bisa ada. Nilai ini berfungsi sebagai pengenal untuk docker-compose dan bukan nama sebenarnya dari jaringan (yang didefinisikan dalam networks bagian tag).
  • ports - Mendefinisikan port host yang wadah dapat terhubung ke. Setara dengan --publish .
  • volumes - Menentukan volume untuk wadah. Setara dengan --volume .
  • environment - Mendefinisikan variabel lingkungan untuk wadah. Setara dengan --env . Opsi ini mendukung dua tipe sintaks. Yang pertama adalah variable: value , yang digunakan di sini. Opsi lainnya, yang mungkin lebih familiar jika Anda terbiasa dengan docker Sintaks CLI, adalah - variable=value .
  • depends_on - Menentukan dependensi wadah. Ini digunakan untuk meminta wadah untuk tidak memulai sampai dependensinya ada. Ini menerima nilai dari daftar penampung. (Bukan container_name !)

Tag 'jaringan'

networks:
  nextcloud:
    name: nextcloud_docker_network

Sekarang Anda masuk ke networks menandai. Ini digunakan untuk menentukan jaringan yang kami cantumkan di bawah networks untuk kontainer kami.

Di dalam networks bagian, pertama-tama Anda mencantumkan pengenal yang Anda berikan ke jaringan di bawah services . Ini dia nextcloud .

Selanjutnya anda tentukan nama jaringan yang dapat dilihat dengan docker network ls . Di sini, kami menamakannya nextcloud_docker_network .

Jika Anda ingin wadah bergabung dengan jaringan yang sudah ada, Anda akan menggunakan sintaks berikut, menggantikan network_name dengan nama jaringan Docker:

networks:
  nextcloud:
    external: true
    name: network_name

Dan di sana Anda pergi. Itu meringkas seluruh file!

Anda dapat memberi nama file yml apa saja tetapi kemudian Anda harus menentukan nama file saat menggunakan perintah docker-compose. Menjaga tradisi dan menamainya docker-compose.yml membuat perintah tetap singkat.

Menutup

Sekarang Anda mengetahui dasar-dasar penggunaan Docker Compose, dan manfaat yang dapat Anda peroleh melalui penggunaannya. Sekarang Anda juga sedang dalam proses memahami apa yang dilakukan orang saat mereka mendistribusikan container mereka melalui file Compose.

Sesuatu tidak berfungsi, atau ada pertanyaan yang tersisa? Anda dipersilakan untuk meninggalkannya di bagian komentar di bawah.


Docker
  1. Menjalankan PostgreSQL di Docker, Panduan Cepat dan Praktis

  2. Cara Menjalankan Nginx dalam Wadah Docker:Panduan Langkah demi Langkah

  3. Siapkan Nextcloud dengan Redis menggunakan Docker

  1. Terapkan WordPress di Docker menggunakan Ansible

  2. Terapkan Nextcloud di Docker menggunakan Ansible

  3. Cara Menggunakan Tulis Docker

  1. Apa yang Baru di Docker Compose v2?

  2. Cara Menginstal Docker di CentOS

  3. Mengatur Hostname di Docker Compose