نحوه نصب Docker Compose در Debian 10
مقدمه
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 mesغير مجاز مي باشدe shows that your installation appears to be working correctly.
my-test_1 |
. . .
سپس توضيحي درباره آنچه انجام داده چاپ مي كند:
Output
To generate this mesغير مجاز مي باشدe, 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 نگاهي بيندازيد.
از اين لينك ها زير مي توانيد آمورش هاي بيشتري براي لينوكس پيدا كنيد :
راه اندازي اوليه سرور با CentOS 8 – تهيه نسخه پشتيبان و بازيابي يك خوشه Kubernetes
نحوه تنظيم كليدهاي SSH در CentOS 8 – نحوه نصب و استفاده از PostgreSQL در CentOS 7
نحوه ساختن يك برنامه Node.js با Docker [Quickstart] – چگونه مي توان پلتفرم Eclipse Theia Cloud IDE را روي اوبونتو
چگونه مي توان هاست هاي مجازي Apache را در اوبونتو – مديريت DNS با استفاده از DNSControl در Debian 10
نحوه تاييد صحت رمز عبور با Apache در اوبونتو 18.04 – چگونه مي توان پلتفرم Cloud IDE كد سرور را روي CentOS 7
نحوه نصب و استفاده از TimescaleDB در CentOS 7 – نحوه نصب Apache Kafka در Debian 10
نحوه تاييد صحت رمز عبور با Apache در اوبونتو 18.04 – نحوه نصب وردپرس با OpenLiteSpeed در اوبونتو 18.04
استفاده از Cron براي خودكارسازي كارها در اوبونتو 18 –
نصب و استفاده ازRadamsa براي فوز كردن برنامه ها روي Ubuntu 18 –
نحوه راه اندازي Eclipse Theia Cloud IDE Platform در Debian 10 –
نحوه نصب Docker Compose در Debian 10 –
چگونه مي توان با كتابخانه (library) درخواست ها در پايتون شروع به كار كرد –
نحوه اجراي صفحه گذاري در MySQL با PHP روي اوبونتو 18.04 –
نحوه تنظيم پلتفرم Eclipse Theia Cloud IDE در CentOS 7 –
بسته بندي برنامه Laravel 6 براي توسعه با Docker Compose در اوبونتو 18 –
بهينه سازي درخواست هاي MySQL با ذخيره سازي غير مجاز مي باشدSQL در اوبونتو 16 –
استفاده از Ansible براي نصب و راه اندازي وردپرس با LAMP در اوبونتو 18 –
چگونه مي توان پلتفرم كد سرور Cloud IDE را در اوبونتو 18.04 –
چگونه مي توان از رول هاي ansible براي انتزاع محيط زيرساختي –
نحوه پيكربندي يك خوشه Galera با MySQL در سرورهاي اوبونتو 18 –
كلمات كليدي خريد سرور
خريد vps – خريد سرور مجازي – خريد سرور – سرور هلند – فروش vps – سرور مجازي آمريكا – خريدvps – سرور مجازي هلند – فروش سرور مجازي – سرور آمريكا – vps – سرور مجازي انگليس – سرور مجازي آلمان – سرور مجازي كانادا – خريد vps آمريكا – خريد وي پي اس – سرور – خريد سرور مجازي هلند – vps خريد – سرور مجازي فرانسه – سرور مجازي هلند – خريد vps آمريكا
برچسب: ،