مقدمه
Docker ابزاري عالي براي خودكار سازي برنامه هاي كاربردي لينوكس در كانتينرهاي نرم افزاري است ، اما براي بهره گيري كامل از پتانسيل آن ، هر يك از اجزاي برنامه بايد در كانتينر شخصي خود اجرا شود. براي برنامه هاي كاربردي پيچيده با اجزاي فراوان ، كه همه كانتينرها را با هم براي راه اندازي ، برقراري ارتباط و خاموش كردن به كار ميگيرند ، خيلي سريع مي توانند ناخوشايند شوند.
انجمن Docker با يك راه حل محبوب به نام Fig روبرو شد كه به شما اين امكان را مي دهد تا از يك فايل YAML استفاده كنيد تا همه كانتينرها و پيكربندي هاي Docker خود را بر روي آن تنظيم كنيد. اين امر چنان محبوب شد كه تيم Docker تصميم گرفت تا Docker Compos را بر اساس منبع Fig بسازد ، كه اكنون مستهلك شده است. Docker Compose به كاربران اين امكان را مي دهد تا فرآيندهاي كانتينرهاي داكر را از جمله راه اندازي ، خاموش كردن و تنظيم لينك ها و واليوم هاي داخل كانتينري را هماهنگ كنند.
در اين آموزش ، آخرين نسخه Docker Compose را براي كمك به شما در مديريت برنامه هاي چند كانتينري روي يك سرور مجازي Debian 10 نصب خواهيد كرد.
پيش نيازها
براي دنبال كردن اين مقاله ، به اين موارد نياز داريد:
يك سرور مجازي Debian 10 و يك كاربر غير root با امتيازات sudo . اين لينك در مورد تنظيم اوليه سرور مجازي با آموزش Debian 10 نحوه انجام اين دستورالعمل هاي مرحله 1 و مرحله 2 نحوه نصب و استفاده از Docker در Debian 10 نصب شده است
توجه: اگرچه پيش نيازها دستورالعمل نصب Docker در Debian 10 را ارائه مي دهند ، دستورات docker در اين مقاله بايد بعد از نصب Docker روي سيستم عامل هاي ديگر كار كنند.

مرحله 1 – نصب Docker Compose
اگرچه مي توانيد Docker Compose را از منابع رسمي Debian نصب كنيد ، اما نسخه هاي متعدد فرعي بعد از آخرين نسخه موجود است ، بنابراين در اين آموزش آن را از منبع Docker’s GitHub نصب خواهيد كرد. دستورالعمل كمي متفاوت از آنچه در صفحه نسخه ها خواهيد يافت ، ميباشد. اين دستور با استفاده از فلگ -o براي مشخص كردن فايل خروجي به جاي تغيير مسير خروجي ، از وارد شدن به خطاي ” permission denied ” ناشي از استفاده از sudo جلوگيري مي كند.
نسخه فعلي را بررسي كنيد و در صورت لزوم آن را در دستور زير به روز كنيد:
$ sudo curl -L https://github.com/docker/compose/releases/download/1.25.3/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

سپس مجوزها را تنظيم خواهيم كرد:
$ sudo chmod +x /usr/local/bin/docker-compose

سپس با بررسي نسخه تأييد خواهيم كرد كه نصب با موفقيت انجام شد:
$ docker-compose –version
با اين كار نسخه اي كه نصب كرديم چاپ خواهد شد:
Output
docker-compose version 1.25.3, build d4d1b42b

اكنون كه Docker Compose نصب شده است ، ما آماده اجراي يك مثال ” Hello World ” هستيم.
مرحله 2 – اجراي يك كانتينر با Docker Compose
رجيستري داكر عمومي ، Docker Hub ، شامل تصوير Hello World براي نمايش و آزمايش است. اين حداقل تنظيمات مورد نياز براي اجراي يك كانتينر را با استفاده از Docker Compose نشان مي دهد: يك فايل YAML كه يك تصوير واحد را فراخواني مي كند. ما اين تنظيمات حداقل را براي اجراي كانتينرهاي hello-world ايجاد خواهيم كرد.
ابتدا دايركتوري براي فايل YAML ايجاد كنيد و به آن سوييچ كنيد:
$ mkdir hello-world

$ cd hello-world

سپس فايل YAML را ايجاد كنيد:
$ nano docker-compose.yml

مطالب زير را در فايل قرار داده ، فايل را ذخيره كرده و از ويرايشگر متن خارج شويد:
docker-compose.yml
my-test:
image: hello-world

خط اول در فايل YAML به عنوان بخشي از نام كانتينر استفاده مي شود. خط دوم مشخص مي كند از كدام تصوير براي ايجاد كانتينر استفاده كنيد. هنگامي كه ما دستور docker-compose up را اجرا مي كنيم ، به دنبال يك تصوير محلي با نامي كه مشخص كرديم ، يعني hello-world هستيم. با اين جايگزيني ، فايل را ذخيره كرده و خارج مي شويم.
با فرمان docker images مي توانيد به صورت دستي به تصاوير موجود در سيستم ما نگاه كنيد:
$ docker images
هنگامي كه هيچ تصاوير محلي وجود ندارد ، فقط عناوين ستون نمايش داده مي شود:
Output
REPOSITORY TAG IMAGE ID CREATED SIZE

اكنون ، اگر هنوز در فهرست ~ / hello-world هستيد ، دستور زير را اجرا كنيد:
$ docker-compose up

اولين باري كه دستور را اجرا مي كنيد ، اگر هيچ تصويري محلي به نام hello-world وجود ندارد ، Docker Compose آن را از منبع عمومي Docker Hub بيرون مي كشد:
Output
Pulling my-test (hello-world:)…
latest: Pulling from library/hello-world
9db2ca6ccae0: Pull complete
Digest: sha256:4b8ff392a12ed9ea17784bd3c9a8b1fa3299cac44aca35a85c90c5e3c7afacdc
Status: Downloaded newer image for hello-world:latest
. . .

پس از كشيدن تصوير ، docker-compose يك كانتينر ايجاد مي كند ، ضميمه مي كند و برنامه hello را اجرا مي كند ، كه به نوبه خود تأييد مي كند كه نصب در حال كار است:
Output
. . .
Creating helloworld_my-test_1…
Attaching to helloworld_my-test_1
my-test_1 |
my-test_1 | Hello from Docker.
my-test_1 | This message shows that your installation appears to be working correctly.
my-test_1 |
. . .

سپس توضيحي درباره آنچه انجام داده چاپ مي كند:
Output
To generate this message, Docker took the following steps:
my-test_1 | 1. The Docker client contacted the Docker daemon.
my-test_1 | 2. The Docker daemon pulled the “hello-world” image from the Docker Hub.
my-test_1 | (amd64)
my-test_1 | 3. The Docker daemon created a new container from that image which runs the
my-test_1 | executable that produces the output you are currently reading.
my-test_1 | 4. The Docker daemon streamed that output to the Docker client, which sent it
my-test_1 | to your terminal.

كانتينرهاي داكر فقط تا زماني كه دستور فعال است اجرا مي شوند ، بنابراين پس از پايان كار hello ، كانتينر متوقف شد. در نتيجه ، هنگامي كه به فرآيندهاي فعال نگاه مي كنيم ، سرصفحات ستون ظاهر مي شود ، اما كانتينرهاي hello world ليست نمي شود زيرا در حال اجرا نيست:
$ docker ps
Output
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

با استفاده از فلگ -a مي توانيد اطلاعات كانتينر را كه در مرحله بعدي به آن نياز داريد را مشاهده كنيد. اين همه كانتينرها را نشان مي دهد، و نه فقط موارد فعال:
$ docker ps -a

Output
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
06069fd5ca23 hello-world “/hello” 35 minutes ago Exited (0) 35 minutes ago hello-world_my-test_1

اين خروجي اطلاعاتي را نشان مي دهد كه بايد پس از اتمام كار با كانتينر از آن حذف كنيد.
مرحله 3 – حذف تصوير (اختياري)
براي جلوگيري از استفاده غير ضروري از فضا ديسك ، تصوير محلي را حذف خواهيم كرد. براي انجام اين كار ، ما بايد تمام كانتينرهاي حاوي تصوير را با استفاده از دستور docker rm حذف كنيم ، به دنبال آن يا CONTAINER ID يا NAME حذف مي شود. در مثال زير ، ما از دستور docker ps -a كه اخيراً اجرا كرديم، استفاده مي كنيم. حتماً شناسه كانتينر خود را جايگزين كنيد:
$ docker rm 06069fd5ca23

پس از حذف همه كانتينرهاي حاوي تصوير ، مي توانيم تصوير را حذف كنيم:
$ docker rmi hello-world

نتيجه
شما Docker Compose را روي Debian 10 نصب كرده ايد، نصب خود را با اجراي يك مثال Hello World آزمايش كرده و تصوير و كانتينر مورد آزمايش را حذف كرده ايد.
در حالي كه مثال Hello World نصب شما را تأييد كرد ، اين پيكربندي ساده يكي از مزاياي اصلي Docker Compose را نشان نمي دهد – آن هم توانايي بالا و پايين آوردن گروهي از كانتينرهاي Docker به صورت همزمان. براي ديدن نحوه استفاده از Docker Compose با جزئيات بيشتر ، به نحوه نصب وردپرس با Docker Compose نگاهي بيندازيد.

از اين لينك ها زير مي توانيد آمورش هاي بيشتري براي لينوكس پيدا كنيد :

نحوه تاييد صحت رمز عبور با Apache در اوبونتو 18.04

نحوه نصب و استفاده از TimescaleDB در CentOS 7

نحوه تاييد صحت رمز عبور با Apache در اوبونتو 18.04 (شروع سريع)

نحوه راه اندازي Eclipse Theia Cloud IDE Platform در Debian 10

نحوه نصب و استفاده ازRadamsa براي فوز كردن برنامه ها (تكنيك تست خودكار نرم افزار) و خدمات شبكه روي Ubuntu 18.04

نحوه نصب Docker Compose در Debian 10

چگونه مي توان با كتابخانه (library) درخواست ها در پايتون شروع به كار كرد

نحوه اجراي صفحه گذاري در MySQL با PHP روي اوبونتو 18.04

نحوه تنظيم پلتفرم Eclipse Theia Cloud IDE در CentOS 7

بسته بندي برنامه Laravel 6 براي توسعه با Docker Compose در اوبونتو 18.04

نحوه بهينه سازي درخواست هاي MySQL با ذخيره سازي ProxySQL در اوبونتو 16.04

نحوه استفاده از Ansible براي نصب و راه اندازي وردپرس با LAMP در اوبونتو 18.04

چگونه مي توان پلتفرم كد سرور Cloud IDE را در اوبونتو 18.04 تنظيم كرد (شروع سريع)

چگونه مي توان از رول هاي ansible براي انتزاع محيط زيرساختي خود استفاده كرد

نحوه پيكربندي يك خوشه Galera با MySQL در سرورهاي اوبونتو 18.04

نحوه تهيه نسخه پشتيبان و بازيابي يك خوشه Kubernetes در vpsgol با استفاده از Velero

نحوه نصب و استفاده از PostgreSQL در CentOS 7

چگونه مي توان پلتفرم Eclipse Theia Cloud IDE را روي اوبونتو 18.4 تنظيم كرد

نحوه استقرار و مديريت DNS با استفاده از DNSControl در Debian 10

چگونه مي توان پلتفرم Cloud IDE كد سرور را روي CentOS 7 تنظيم كرد

 

كلمات كليدي خريد سرور

خريد vps – خريد سرور مجازي – خريد سرور – سرور هلند – فروش vps – سرور مجازي آمريكا – خريدvps – سرور مجازي هلند – فروش سرور مجازي – سرور آمريكا – vps – سرور مجازي انگليس – سرور مجازي آلمان – سرور مجازي كانادا – خريد vps آمريكا – خريد وي پي اس – سرور – خريد سرور مجازي هلند – vps خريد – سرور مجازي فرانسه – سرور مجازي هلند – خريد vps آمريكا – خريد سرور مجازي هلند – خريد وي پي اس – خريد vps هلند – خريد vps فرانسه