وبلاگ رسانگار
با ما حرفه ای باشید

سرور مجازی NVMe

روش نصب و استفاده از Docker Compose در CentOS 7

0 13
زمان لازم برای مطالعه: 3 دقیقه



Docker Compose
ابزاری است که به شما امکان تعریف و اجرای برنامه های Docker چند کانتینری را می دهد.

با Compose، سرویس‌ها، شبکه‌ها و حجم‌های برنامه را در یک فایل YAML تعریف می‌کنید، سپس برنامه خود را با یک فرمان می‌چرخانید.

Compose را می توان برای اهداف مختلفی مانند تک استفاده کرد host استقرار برنامه، تست خودکار و توسعه محلی.

این آموزش شما را در نصب آخرین نسخه Docker Compose بر روی آن راهنمایی می کند CentOS 7. همچنین مفاهیم و دستورات اولیه Docker Compose را پوشش خواهیم داد.

پیش نیازها

قبل از ادامه این آموزش مطمئن شوید که پیش نیازهای زیر را دارید:

  • به عنوان یک کاربر با امتیازات sudo وارد سیستم شده‌اید.
  • Docker را روی خود نصب کنید CentOS 7 سیستم.

Docker Compose را نصب کنید CentOS

روش توصیه شده برای نصب Docker Compose در CentOS 7 با دانلود باینری Compose از مخزن Docker’s GitHub است.

در زمان نگارش این مقاله، آخرین نسخه پایدار Docker Compose نسخه است 1.23.1. قبل از دانلود باینری Compose به آدرس زیر مراجعه کنید انتشار مخزن را بنویسید page در GitHub
و بررسی کنید که آیا نسخه جدیدی برای دانلود موجود است یا خیر.

مراحل زیر را برای نصب Docker Compose انجام دهید CentOS 7:

  1. با دانلود باینری Docker Compose در /usr/local/bin دایرکتوری با استفاده از زیر curl
    دستور:

    sudo curl -L "https://github.com/docker/compose/releases/download/1.23.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
  2. پس از اتمام دانلود، باینری را با تایپ کردن قابل اجرا کنید:

    sudo chmod +x /usr/local/bin/docker-compose
  3. برای تأیید نصب، دستور زیر را برای چاپ نسخه Compose وارد کنید:

    docker-compose --version

    خروجی چیزی شبیه به این خواهد بود:

    docker-compose version 1.23.1, build b02f1306

شروع کار با Docker Compose

در این بخش، روش استفاده از Docker Compose برای اجرای یک پشته وردپرس را نشان خواهیم داد CentOS 7 دستگاه.

پیشنهاد می‌کنیم بخوانید:  روش Undo و Redo در Vim / Vi

با ایجاد یک دایرکتوری جدید برای پروژه و پیمایش در آن شروع کنید:

mkdir my_app && cd my_app

بعد، یک فایل به نام ایجاد کنید docker-compose.yml داخل دایرکتوری پروژه:

nano docker-compose.yml

محتوای زیر را بچسبانید:

docker-compose.yml
version: '3.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:

بیایید کد را خط به خط تجزیه و تحلیل کنیم.

خط اول مشخص می کند نگارش نسخه فایل
. چندین نسخه مختلف از فرمت فایل Compose با پشتیبانی از نسخه‌های خاص Docker وجود دارد.

بعد، ما دو سرویس را تعریف می کنیم، db و wordpress. هر سرویس یک تصویر را اجرا می کند و با اجرای docker-compose یک کانتینر جداگانه ایجاد می کند.

این db سرویس:

  • استفاده می کند mysql:5.7

    تصویر اگر تصویر در سیستم شما وجود نداشته باشد، Compose آن را از مخزن عمومی Docker Hub می کشد.

  • از راه اندازی مجدد استفاده می کند always خط مشی که به کانتینر دستور می دهد همیشه راه اندازی مجدد شود.
  • یک حجم با نام ایجاد می کند db_data تا پایگاه داده پایدار بماند.
  • متغیرهای محیطی را برای mysql:5.7 تصویر

این wordpress سرویس:

  • استفاده می کند wordpress

    تصویر اگر تصویر در سیستم شما وجود نداشته باشد، Compose آن را از مخزن عمومی Docker Hub می کشد.

  • از راه اندازی مجدد استفاده می کند always خط مشی که به کانتینر دستور می دهد همیشه راه اندازی مجدد شود.
  • را سوار می کند wp_data دایرکتوری در host به /var/lib/mysql داخل ظرف
  • پورت در معرض 80 روی کانتینر را به پورت 8080 روی کانتینر هدایت می کند host دستگاه.
  • متغیرهای محیطی را برای wordpress تصویر
  • این depends_on دستورالعمل وابستگی بین دو سرویس را تعریف می کند. در این مثال، db قبل شروع خواهد شد wordpress.

از فهرست پروژه، برنامه وردپرس را با استفاده از دستور زیر بچرخانید:

docker-compose up

خروجی باید چیزی شبیه به این باشد:

...
wordpress_1  | [Sat Oct 13 21:30:48.286382 2018] [mpm_prefork:notice] [pid 1] AH00163: Apache/2.4.25 (Debian) PHP/7.2.10 configured -- resuming normal operations
wordpress_1  | [Sat Oct 13 21:30:48.286425 2018] [core:notice] [pid 1] AH00094: Command line: 'apache2 -D FOREGROUND'

Compose هر دو تصویر را می کشد، دو ظرف را شروع می کند و ایجاد می کند wp_data دایرکتوری در دایرکتوری پروژه شما

مرورگر خود را باز کنید، تایپ کنید http://0.0.0.0:8080/ و صفحه نصب وردپرس را مشاهده خواهید کرد.

در این مرحله، برنامه وردپرس فعال شده است و می توانید کار بر روی قالب یا افزونه خود را شروع کنید.

برای توقف نوشتن، فشار دهید CTRL+C. متغیرهای محیطی اگر می خواهید Compose را در حالت جدا شده شروع کنید، از آن استفاده کنید -d پرچم:

docker-compose up -d

برای بررسی خدمات در حال اجرا از ps گزینه:

docker-compose ps
       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 stop

برای جدا کردن کامل ظروف از down گزینه:

docker-compose down

عبور از --volumes سوئیچ حجم داده ها را نیز حذف می کند:

docker-compose down --volumes

حذف نصب Docker Compose

اگر می خواهید Docker Compose را حذف کنید، به سادگی باینری را با استفاده از دستور زیر حذف کنید:

sudo rm /usr/local/bin/docker-compose

نتیجه

شما روش نصب و استفاده از Docker Compose را در a یاد گرفته اید CentOS 7.

اگر سوالی دارید، لطفا در زیر نظر دهید.

docker centos
برای نگارش بخشهایی از این متن ممکن است از ترجمه ماشینی یا هوش مصنوعی GPT استفاده شده باشد
لطفا در صورت وجود مشکل در متن یا مفهوم نبودن توضیحات، از طریق دکمه گزارش نوشتار یا درج نظر روی این مطلب ما را از جزییات مشکل مشاهده شده مطلع کنید تا به آن رسیدگی کنیم

زمان انتشار: 1402-12-27 16:39:05

امتیاز شما به این مطلب
دیدگاه شما در خصوص مطلب چیست ؟

آدرس ایمیل شما منتشر نخواهد شد.

لطفا دیدگاه خود را با احترام به دیدگاه های دیگران و با توجه به محتوای مطلب درج کنید