مقالات

نحوه نصب Docker در اوبونتو 18.04


فناوری کانتینر پدیده جدیدی نیست و برای مدت طولانی بخشی از ویژگی های اصلی لینوکس بوده است. قابل توجه ترین در این میان کانتینر سولاریس، OpenVZ و LXC هستند.

Docker در سال 2013 ظاهر شد. در ابتدا Docker از کتابخانه های LXC به عنوان زمان اجرا استفاده می کرد، اما بعداً آنها کتابخانه های خود (libcontainer) را توسعه دادند و به دلیل سادگی و سهولت استفاده از آنها بسیار محبوب شدند.

Containerization راهی است برای بسته بندی برنامه ها به همراه وابستگی ها به طوری که آنها می توانند در یک محیط ایزوله اجرا شوند و یک جایگزین سبک وزن برای مجازی سازی کامل ماشین است.

داکر چیست؟

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

به عبارت دیگر، داکر یک پلتفرم کانتینری‌سازی است که در آن برنامه‌های بسته‌بندی شده در قالب یک کانتینر می‌توانند به صورت امن و سریع اجرا شوند.

ظرف داکر چیست؟

کانتینرها واحد استاندارد نرم‌افزاری هستند که کدها و تمام وابستگی‌های آن را بسته‌بندی می‌کنند تا برنامه‌ها بتوانند سریع‌تر و مطمئن‌تر در محیط‌های مختلف اجرا شوند. برای چرخاندن یک کانتینر، به یک تصویر docker نیاز دارید که شامل کد، زمان اجرا، ابزارهای سیستم، کتابخانه‌ها و تنظیمات برای راه‌اندازی یک برنامه باشد.

الف تصویر داکر هنگام کار در موتور داکر به یک ظرف تبدیل می شود. به عبارت دیگر، یک تصویر داکر یک الگو است و یک کانتینر یک کپی در زمان اجرا از آن الگو است. می‌توانید هر تعداد کانتینر را که دوست دارید از همان تصویر داکر بچرخانید.

Docker را در اوبونتو 18.04 نصب کنید

Docker را می توان از مخزن رسمی اوبونتو یا مخزن رسمی Docker نصب کرد. بسته docker موجود در مخزن رسمی اوبونتو ممکن است جدیدترین نباشد.

بنابراین، برای دریافت آخرین نسخه Docker نصب شده بر روی سیستم، آن را از مخزن رسمی Docker نصب می کنیم.

برای شروع، قبل از ادامه نصب Docker، چند پیش نیاز را نصب کنید.

# apt install apt-transport-https ca-certificates curl software-properties-common

اکنون کلید GPG مخزن رسمی Docker را به سیستم خود اضافه کنید.

# curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

سپس مخزن Docker را به پایگاه داده apt در سیستم اضافه کنید.

# add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"

در نهایت پایگاه داده بسته را به روز کنید و با دستور زیر نسخه جامعه داکر را نصب کنید.

# apt update && apt install docker-ce

پس از نصب داکر، دیمون آن به طور خودکار راه اندازی می شود.

# systemctl status docker

توجه: یک بسته داکر از یک ابزار خط فرمان داکر یا کلاینت داکر به همراه یک دایمون داکر تشکیل شده است.

تصاویر داکر

یک تصویر داکر یک فایل قابل حمل است که حاوی مشخصاتی برای اجرای برنامه در یک کانتینر است. مانند تصاویر ماشین مجازی، تصویر داکر ظرفی است که برای توزیع از طریق داکر هاب ذخیره و بسته بندی می شود. داکر هاب مخزن رسمی است که کاربران می توانند تصاویر داکر را ذخیره و توزیع کنند.

اکثر تصاویر در مرکز داکر دارای برچسب رسمی هستند، به این معنی که به عنوان بسته های رسمی توسط سازمان مربوطه ارائه می شوند. علاوه بر تصاویر رسمی، می توانید تصاویر ارائه شده توسط ارائه دهندگان شخص ثالث را نیز بیابید که بیشتر در بالای تصاویر رسمی سفارشی شده اند.

در حین کار با docker، می‌توانید با استفاده از مشخصات، یک تصویر داکر را به صورت محلی بسازید و آن را در داکر هاب آپلود کنید و با دیگران به اشتراک بگذارید.

بیایید با دانلود یک تصویر از داکر هاب، روند اجرای یک برنامه در یک کانتینر را طی کنیم. این به شما کمک می کند تا فرآیند را واضح تر درک کنید.

ابتدا تصویری را که می خواهید کانتینری کنید جستجو کنید، مثال زیر سرور وب تصویر آپاچی را جستجو می کند. httpd:

# docker search httpd
NAME          DESCRIPTION                         STARS               OFFICIAL            AUTOMATED
httpd           The Apache HTTP Server Project                  2543                [OK]

centos/httpd                                                                         23                                      [OK]

centos/httpd-24-centos7              Platform for running Apache httpd 2.4 or bui…   22
...
...

در میان تمام نتایج، اولین مورد، تصویر رسمی وب سرور httpd است و با برچسب رسمی شناخته می شود.

حالا با استفاده از docker pull تصویر رسمی httpd را بکشید. این فقط تصویر را در سیستم محلی شما دانلود می کند، اما آن را اجرا نمی کند.

# docker pull httpd

از برچسب پیش فرض استفاده کنید: آخرین

latest: Pulling from library/httpd
f5d23c7fed46: Pull complete
b083c5fd185b: Pull complete
bf5100a89e78: Pull complete
98f47fcaa52f: Pull complete
622a9dd8cfed: Pull complete
Digest: sha256:8bd76c050761610773b484e411612a31f299dbf7273763103edbda82acd73642
Status: Downloaded newer image for httpd:latest

دستور بالا تصویر httpd را در سیستم شما دانلود می کند. تصویر را با استفاده از دستور docker images فهرست کنید:

# docker images
REPOSITORY       TAG                 IMAGE ID            CREATED             SIZE
httpd           latest              ee39f68eb241        9 hours ago         154MB
nextcloud       latest              ba8e5fa8f005        3 months ago        597MB
...
...

در نهایت، سرور httpd را در یک کانتینر با استفاده از دستور docker run زیر راه اندازی کنید:

# docker run -d --name WebServer httpd
 5d9d9138423372cf59e9c0fdd5321dd1753dc33167665a59dc2ee65ab917f8a6

دستور docker بالا دو آرگومان می گیرد. اولین آرگومان -d به داکر می‌گوید که ظرف را در حالت مستقل (ترمینال) اجرا کند و آرگومان –name نامی را به کانتینر متصل می‌کند که در مثال بالا “WebServer” است.

پس از اینکه داکر با استفاده از تصویر httpd کانتینر را با موفقیت راه اندازی کرد، یک شناسه کانتینر را به ترمینال برمی گرداند.

اکنون بررسی کنید که کانتینر با استفاده از دستور docker ps در حال اجرا است:

# docker ps
CONTAINER ID IMAGE  COMMAND             CREATED        STATUS       PORTS  NAMES
5d9d91384233 httpd  "httpd-foreground"  6 minutes ago  Up 6 minutes 80/tcp WebServer
...
...

وضعیت “Up 6 minutes” به ما می گوید که کانتینر 6 دقیقه پیش راه اندازی شده و در حال اجرا است. همچنین ستون ‘NAMES’ نام کانتینر را نشان می دهد که سرور وب است که ما هنگام اجرای کانتینر مشخص کرده ایم.

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

# docker stop WebServer
WebServer

ظرف httpd اکنون متوقف شده است. با استفاده از دستور docker rm می توانید ظرف بلااستفاده را از سیستم محلی خود حذف کنید:

# docker rm WebServer
WebServer

دستور docker rm بالا فقط ظرف را حذف می کند، اما تصویر httpd docker را که قبلاً با استفاده از دستور docker pull کشیده اید، حذف نمی کند.

برای حذف تصویر docker، از دستور docker rmi زیر از ترمینال استفاده کنید:

# docker rmi httpd
Untagged: httpd:latest
Untagged: httpd@sha256:8bd76c050761610773b484e411612a31f299dbf7273763103edbda82acd73642
Deleted: sha256:ee39f68eb241fd811887da7e21425ac657074363daa9969b9519504785f5d60d
Deleted: sha256:58196fbec21e78d5358fbc70beb15f0c88876cd90b69e7b1ddaf4704555dd740
Deleted: sha256:8f7378bcc6ba3317d1366fa79733e4a8b703d7cde181f671229a6619116477a8
Deleted: sha256:43c1dcceb2782c203ab2b2a5229f4938a2a05fbc70b8508f3de668434422c264
Deleted: sha256:912caf7e400db91ab190309fdf9baa15cf42574a3eefe1e1a4c6ab4a963742ff
Deleted: sha256:d8a33133e477d367977987129313d9072e0ec80894ed4c52c2d88186f354c29a

دستورات داکر

در این مرحله ما یک ایده اولیه در مورد تصاویر docker و نحوه چرخش یک کانتینر با استفاده از تصاویر رسمی از داکر هاب داریم. هنگامی که یک کانتینر را راه‌اندازی کردید، آنچه باید بدانید چند دستور پایه docker است که می‌توانید برای حرکت به جلو در حین استفاده از docker اعمال کنید.

اگرچه صدها فرمان وجود دارد که می توانید در حین کار با docker از آنها استفاده کنید، ما فقط دستوراتی را که اغلب استفاده می شوند پوشش می دهیم.

1. دستور Docker info

دستور docker info اطلاعات سیستم را در مورد docker نمایش می دهد:

# docker info
Containers: 4
Running: 0
Paused: 0
Stopped: 4
Images: 4
Server Version: 18.09.7
...
...

2. فرمان جستجوی داکر

برای جستجوی تصاویر در رجیستری داکر هاب، از دستور جستجوی docker استفاده کنید:

# docker search nginx

دستور بالا تمام تصویر داکر NGINX موجود را از فروشنده رسمی و شخص ثالث نشان می دهد.

3. دستور Docker Pull

دستور Docker pull تصاویر را از داکر هاب به سیستم محلی می کشد:

# docker pull maradb

4. دستور Docker images

برای فهرست کردن تمام تصاویر docker ذخیره شده در سیستم، از دستور docker images استفاده کنید

# docker images

5. اجرای داکر

دستور docker run برای ایجاد یک کانتینر از یک تصویر docker که قبلا دانلود کرده اید استفاده می شود. اگر تصویر در سیستم محلی وجود نداشته باشد، ابتدا تصویر را دانلود کرده و سپس ظرف را ایجاد می کند.

# docker run -d mariadb

6. Docker Start/Stop/Restart/Kill

دستور docker start در صورت اجرا نشدن یک کانتینر را راه اندازی می کند.

# docker start container_id OR container_name

برای متوقف کردن یک کانتینر، از دستور توقف docker استفاده کنید:

# docker stop container_id OR container_name

یک کانتینر را با استفاده از دستور راه اندازی مجدد docker راه اندازی مجدد کنید

# docker restart container_id OR container_name

برای کشتن یک کانتینر، از دستور docker kill استفاده کنید. تفاوت بین دستور توقف docker و docker kill در این است که دستور توقف docker به کانتینر زمان می‌دهد تا به خوبی خاموش شود، در حالی که دستور docker kill بلافاصله کانتینر را می‌کشد بدون اینکه منتظر بماند تا کانتینر به‌خوبی خاموش شود.

7. دستور Docker PS

دستور docke ps برای فهرست کردن همه کانتینرهای در حال اجرا استفاده می شود:

# docker ps

برای فهرست کردن یک کانتینر در حال اجرا و همچنین خروجی، از گزینه -a با دستور docker ps استفاده کنید:

# docker ps -a

8. دستور Docker RM

برای حذف یک کانتینر متوقف شده، از دستور docker rm استفاده کنید

# docker rm mariadb

9. دستور Docker RMI

برای حذف یک تصویر داکر ذخیره شده از سیستمی که قبلا دانلود شده است، از دستور docker rmi استفاده کنید

# docker rmi nginx

10. دستور Docker Exec

دستور docker exec برای اجرای یک دستور در داخل یک کانتینر در حال اجرا استفاده می شود.

به عنوان مثال، دستور زیر با استفاده از یک فرمان لمسی، یک فایل متنی در کانتینر “WebServer” ایجاد می کند.

# docker exec -d WebServer touch /tmp/docker.txt

11. دستور Docker Logs

برای مشاهده گزارش‌های یک کانتینر، از دستور docker logs استفاده کنید و یک شناسه کانتینر یا نام کانتینر را مشخص کنید.

# docker logs WebServer

12. دستور ورود به Docker

دستور ورود docker برای ورود به داکر هاب با ارائه نام کاربری و رمز عبور استفاده می شود:

# docker login

برای ارسال و دانلود تصاویر از داکر هاب، با شناسه داکر وارد شوید. اگر شناسه داکر ندارید، برای ایجاد آن به https://hub.docker.com بروید.

Username: BestWebHosting
Password:
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded

13. فرمان فشار داکر

برای انتقال تصویر داکر از سیستم محلی به داکر هاب، از دستور زیر استفاده کنید:

# docker push BestWebHosting/nginx_custom

نتیجه گیری

در این آموزش یاد گرفتیم که داکر چیست، تصاویر داکر و دستورات داکر چیست. ما همچنین لیستی از دستورات مفید docker را با مثال هایی مورد بحث و بررسی قرار داده ایم.

این آموزش برای مبتدیانی است که شروع به یادگیری در مورد کل دنیای جدید فناوری کانتینر می کنند. برای کسب اطلاعات بیشتر در مورد آن، اسناد رسمی docker را بخوانید.

امیدواریم از این آموزش خوشتان بیاید. لطفاً اگر علاقه مند به مطالعه بیشتر این نوع مطالب و آموزش پیشرفته docker هستید، نظرات و پیشنهادات خود را در زیر به ما اطلاع دهید.


Source link

نوشته های مشابه

دیدگاهتان را بنویسید

دکمه بازگشت به بالا