Docker Compose، ابزار خط فرمانی است که به شما امکان میدهد، برنامههایی با چندین container Docker را تعریف و تنظیم کنید. این برنامه، از یک فایل YAML به منظور پیکربندی سرویسها، شبکهها و volumeهای برنامه استفاده مینماید.
با استفاده از Compose، شما میتوانید یک محیط برنامه قابل حمل تعریف کنید؛ بطوریکه روی هر سیستمی قابل اجرا باشد. از آنجایی که محیطهای Compose از یکدیگر جدا هستند، شما میتوانید چندین نسخه از یک محیط یکسان را روی یک میزبان اجرا نمایید.
Compose به طور معمول برای توسعه محلی، استقرار برنامههای تک میزبان و آزمایش خودکار مورد استفاده قرار میگیرد.
در این مقاله، نحوه نصب آخرین نسخه Docker Compose در اوبونتو 20.04 توضیح داده شده است. علاوه بر این، شرحی از مفاهیم و دستورات اساسی در Docker Compose ارائه شده است.
قبل از دنبال کردن این آموزش، مطمئن شوید که Docker را روی دستگاه اوبونتوی خود نصب کردهاید.
این مطلب نیز ممکن است برای شما مفید باشد: رفع خطای "Permission Denied" پس از نصب Docker در اوبونتو
نصب Docker Compos در اوبونتو
Docker Compose، یک فایل باینری است و بسیار آسان نصب میشود. در ابتدا، فایل نصب را در یک دایرکتوری موجود در PATH سیستم بارگیری کرده و آن را قابل اجرا مینماییم.
هرچند بسته Docker Compose در مخازن رسمی اوبونتو 20.04 موجود است؛ ولیکن در اغلب اوقات آخرین نسخه نیست.
در اینجا، نسخه پایدار Docker Compose 1.25.5 استفاده میشود. دقت کنید که قبل از بارگیری فایل Compose binary، به صفحه انتشار مخزن Compose در GitHub بروید و بررسی کنید که نسخه جدیدی برای بارگیری وجود دارد یا خیر.
برای بارگیری فایل Compose در دایرکتوری /usr/local/bin از curl استفاده نمایید:
sudo curl -L "https://github.com/docker/compose/releases/download/1.25.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
پس از اتمام بارگیری، مجوزهای اجرایی را روی فایل اعمال کنید:
sudo chmod +x /usr/local/bin/docker-compose
به منظور بررسی موفقیت آمیز بودن نصب، دستور زیر برای مشاهده نسخه Compose اجرا نمایید:
docker-compose --version
خروجی دستور، چیزی شبیه به این خواهد بود:
Output:
docker-compose version 1.25.5, build b02f1306
اکنون، Docker Compose بر روی دستگاه اوبونتوی شما نصب شده است و شما میتوانید از آن استفاده کنید.
شروع کار با Docker Composer
در این بخش، ما از Docker Compose برای ساخت یک برنامه وردپرس دارای چندین container استفاده خواهیم کرد.
اولین قدم، ایجاد یک دایرکتوری پروژه است:
mkdir my_app
cd my_app
پس از آن، ویرایشگر متن خود را باز کرده و فایلی به نام docker-compose.yml داخل دایرکتوری پروژه ایجاد نمایید:
nano docker-compose.yml
سپس محتوای زیر را جایگذاری کنید:
docker-compose.yml
version: '3'
services:
db:
image: mysql:5.7
restart: always
volumes:
- db_data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: password
MYSQL_DATABASE: wordpress
wordpress:
image: wordpress
restart: always
volumes:
- ./wp_data:/var/www/html
ports:
- "8080:80"
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_NAME: wordpress
WORDPRESS_DB_USER: root
WORDPRESS_DB_PASSWORD: password
depends_on:
- db
volumes:
db_data:
wp_data:
ساختار فایل docker-compose.yml به شرح زیر است:
خط اول فایل، نسخه فایل compose را مشخص میکند. چندین نسخه مختلف از قالب فایل Compose با پشتیبانی از نسخههای خاص Docker وجود دارد.
در مرحله بعد، باید سرویسها، volumeها و شبکهها را تعریف نمایید.
در این مثال، از سرویسها، db و وردپرس استفاده میکنیم. هر سرویس یک image را اجرا مینماید و هنگام اجرای docker-compose، یک container جداگانه ایجاد میکند.
سرویسها میتوانند از imageای که در DockerHub موجود است یا imageهای ساخته شده از Dockerfile استفاده کنند. بخش سرویس شامل کلیدهایی است که پورتهای درگیر، volumها، متغیرهای محیط، وابستگیها و سایر دستورات Docker را مشخص مینماید.
با استفاده از دستور زیر، از دایرکتوری پروژه، برنامه WordPress را راهاندازی کنید:
docker-compose up
Compose، آن imageها را دریافت کرده، Containerها را راهاندازی مینماید و دایرکتوری wp_data را ایجاد میکند.
اکنون آدرس http://0.0.0.0:8080/ را در مرورگر خود وارد نمایید، صفحه وردپرس را مشاهده خواهید کرد. در این مرحله، برنامه وردپرس در حال اجرا است و شما میتوانید روی قالب یا افزونه خود کار کنید.
به منظور متوقف کردن Compose، کافیست CTRL + C را فشار دهید.
این مطلب نیز ممکن است برای شما مفید باشد: ایجاد و اجرای Docker Image با استفاده از Dockerfile
با ارسال گزینه -d میتوانید، Compose را در یک حالت مستقل و جداگانه راه اندازید:
docker-compose up -d
برای بررسی سرویسهای در حال اجرا از گزینه ps استفاده نمایید:
docker-compose ps
Output:
Name Command State Ports
----------------------------------------------------------------------------------
my_app_db_1 docker-entrypoint.sh mysqld Up 3306/tcp, 33060/tcp
my_app_wordpress_1 docker-entrypoint.sh apach ... Up 0.0.0.0:8080->80/tcp
وقتی Compose در یک حالت جداگانه در حال اجرا است، به منظور متوقف کردن سرویسهای Docker Compose کافیست دستور زیر را اجرا کنید:
docker-compose stop
به منظور متوقف کردن و حذف Containerها و شبکههای برنامه، از گزینه down استفاده نمایید:
docker-compose down
حذف Docker Compose
به منظور حذف Docker Compose میتوانید از دستور زیر استفاده کنید:
sudo rm /usr/local/bin/docker-compose
منبع:
linuxize
0 دیدگاه
نوشتن دیدگاه