Mengurus Bekas dengan Docker Compose
Orkestrakan berbilang bekas Docker untuk perkhidmatan mikro anda menggunakan Docker Compose.
Mengurus Bekas dengan Docker Compose ialah pelajaran Perkhidmatan Mikro dan API REST Spring Boot 4 percuma di CoddyKit. Ini ialah pelajaran 2 daripada 3. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Perkhidmatan Mikro dan API REST Spring Boot 4, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Perkhidmatan Mikro dan API REST Spring Boot 4 merangkumi sejumlah 3 pelajaran.
Mengapakah Aplikasi Berbilang Bekas?
Perkhidmatan mikro sering bergantung pada beberapa komponen. Bayangkan aplikasi Spring Boot yang memerlukan pangkalan data, baris gilir mesej atau perkhidmatan API lain.
Setiap komponen biasanya berjalan dalam bekas Docker sendiri. Mengurus komponen ini secara individu boleh menjadi rumit, terutamanya semasa pembangunan.
Bagaimanakah kita memulakan semuanya bersama-sama, memastikan komponen tersebut boleh berkomunikasi dan mengurus kitar hayatnya dengan cekap? Di sinilah Docker Compose membantu!
Memperkenalkan Docker Compose
Docker Compose ialah alat untuk mentakrifkan dan menjalankan aplikasi Docker berbilang bekas. Daripada mengurus setiap bekas secara berasingan, anda mentakrifkan semua perkhidmatan dalam satu fail yang mudah dibaca.
Fail takrifan ini biasanya dinamakan docker-compose.yml. Fail ini menggunakan sintaks YAML yang boleh dibaca manusia dan dihuraikan oleh mesin.
Compose memudahkan aliran kerja pembangunan anda dengan membolehkan anda memulakan keseluruhan susunan aplikasi menggunakan satu arahan.
Struktur Asas docker-compose.yml
Fail docker-compose.yml bermula dengan version, diikuti bahagian services yang membolehkan anda mentakrifkan setiap kontena sebagai perkhidmatan yang berasingan.
Setiap perkhidmatan mewakili sebuah kontena, dan anda boleh menentukan imejnya, port yang didedahkan, pemboleh ubah persekitaran serta banyak lagi.
Berikut ialah struktur minimum untuk aplikasi web ringkas:
version: '3.8'
services:
webapp:
image: 'nginx:latest'
ports:
- '80:80'Mentakrifkan Perkhidmatan Web
Mari kita takrifkan sebuah perkhidmatan web ringkas. Kita akan menggunakan imej Nginx rasmi, memetakan satu port dan memberikannya container_name secara pilihan.
Kunci image menentukan imej Docker yang hendak digunakan (contohnya, nginx:latest). Kunci ports memetakan port hos kepada port kontena (contohnya, port 80 hos kepada port 80 kontena).
version: '3.8'
services:
webapp:
image: 'nginx:latest'
ports:
- '80:80'
container_name: my_nginx_appMenambah Perkhidmatan Pangkalan Data
Kebanyakan aplikasi memerlukan pangkalan data. Mari kita tambahkan perkhidmatan pangkalan data PostgreSQL kepada fail docker-compose.yml kita.
Kita akan menentukan imej postgres:13 dan menetapkan pemboleh ubah persekitaran penting untuk kelayakan (POSTGRES_DB, POSTGRES_USER, POSTGRES_PASSWORD).
version: '3.8'
services:
webapp:
image: 'nginx:latest'
ports:
- '80:80'
database:
image: 'postgres:13'
environment:
POSTGRES_DB: mydatabase
POSTGRES_USER: user
POSTGRES_PASSWORD: passwordMenyambungkan Perkhidmatan (Rangkaian)
Docker Compose secara automatik mencipta rangkaian lalai untuk semua perkhidmatan yang ditakrifkan dalam fail docker-compose.yml anda.
Perkhidmatan boleh berkomunikasi antara satu sama lain menggunakan nama perkhidmatan masing-masing sebagai nama hos. Contohnya, aplikasi web anda boleh bersambung kepada pangkalan data menggunakan database sebagai nama hos dan port yang ditentukan (contohnya, 5432 untuk PostgreSQL).
Rangkaian automatik ini memudahkan persediaan komunikasi antara perkhidmatan dengan ketara.
Kekekalan Data dengan Jilid
Kontena bersifat sementara; data di dalamnya akan hilang jika kontena itu dialih keluar. Bagi pangkalan data, ini ialah masalah yang kritikal!
Jilid Docker menyediakan cara untuk mengekalkan data yang dijana oleh kontena Docker. Kita boleh menggunakan jilid bernama untuk menyimpan data pangkalan data di luar kontena, bagi memastikan data itu kekal selepas kontena dimulakan semula atau dialih keluar.
version: '3.8'
services:
database:
image: 'postgres:13'
environment:
POSTGRES_DB: mydatabase
POSTGRES_USER: user
POSTGRES_PASSWORD: password
volumes:
- db_data:/var/lib/postgresql/data
volumes:
db_data:Membina Imej Tersuai
Selalunya, anda mempunyai kod aplikasi sendiri (seperti JAR Spring Boot) yang perlu dibina menjadi imej Docker. Docker Compose juga boleh mengendalikan perkara ini.
Daripada menentukan image, anda boleh menggunakan kunci build dan menunjukkannya kepada direktori yang mengandungi Dockerfile anda.
Compose kemudiannya akan membina imej tersuai anda sebelum memulakan perkhidmatan tersebut. Beginilah rupanya:
# docker-compose.yml
version: '3.8'
services:
my-app:
build: ./my-app-dir
ports:
- '8080:8080'
# my-app-dir/Dockerfile
FROM openjdk:17-jdk-slim
COPY target/my-app.jar app.jar
ENTRYPOINT ["java", "-jar", "app.jar"]Perintah Utama Docker Compose
Setelah docker-compose.yml anda sedia, beberapa perintah penting diperlukan untuk mengurus tindanan aplikasi anda:
docker compose up: Membina (jika perlu) dan memulakan semua perkhidmatan. Gunakan-duntuk mod terpisah.docker compose down: Menghentikan dan mengalih keluar kontena, rangkaian serta, secara pilihan, jilid.docker compose ps: Menyenaraikan semua perkhidmatan yang sedang berjalan dan ditakrifkan dalam fail Compose.docker compose logs: Memaparkan output log daripada perkhidmatan.
Ingat untuk menjalankan perintah ini dalam direktori tempat fail docker-compose.yml anda berada.
Semakan Ringkas: Asas Compose
Pertimbangkan sebuah fail docker-compose.yml yang mentakrifkan dua perkhidmatan: web dan db.
Antara pernyataan berikut, yang manakah secara umumnya TRUE tentang cara perkhidmatan ini berkomunikasi dan menyimpan data?
Imbas Kembali: Kuasa Berbilang Kontena
Tahniah! Anda telah mempelajari cara Docker Compose memudahkan pengurusan aplikasi berbilang kontena.
Kini anda boleh mentakrifkan keseluruhan tindanan aplikasi anda dalam satu fail docker-compose.yml, termasuk perkhidmatan web, pangkalan data dan imej yang dibina khas.
Alat ini amat berguna untuk pembangunan setempat dan pengujian perkhidmatan mikro, kerana anda boleh memulakan keseluruhan persekitaran hanya dengan satu perintah. Teruskan berlatih!
Pelajari Java dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 24
- Pelajaran
- 93
Soalan Lazim
Adakah pelajaran “Mengurus Bekas dengan Docker Compose” percuma?
Ya — teks penuh “Mengurus Bekas dengan Docker Compose” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Perkhidmatan Mikro dan API REST Spring Boot 4, tingkat taraf kepada CoddyKit PRO. Kursus Perkhidmatan Mikro dan API REST Spring Boot 4 merangkumi sejumlah 3 pelajaran.
Apakah yang akan saya pelajari dalam “Mengurus Bekas dengan Docker Compose”?
Orkestrakan berbilang bekas Docker untuk perkhidmatan mikro anda menggunakan Docker Compose. Anda berlatih Perkhidmatan Mikro dan API REST Spring Boot 4 menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Perkhidmatan Mikro dan API REST Spring Boot 4?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Perkhidmatan Mikro dan API REST Spring Boot 4 di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 3.
Berapa lamakah pelajaran “Mengurus Bekas dengan Docker Compose” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Perkhidmatan Mikro dan API REST Spring Boot 4 ini?
Ya. Setiap pelajaran Perkhidmatan Mikro dan API REST Spring Boot 4 menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Membina Imej Docker untuk Aplikasi Spring Boot
- Mengurus Bekas dengan Docker Compose
- Konsep Orkestrasi Bekas