نحوه نصب 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 هستید، نظرات و پیشنهادات خود را در زیر به ما اطلاع دهید.



