Docker یک پلتفرم کانتینریسازی قدرتمند است که به هر کسی اجازه میدهد برنامههای پیچیده را مانند برنامههای معمولی استقرار و منتشر کند. این امر آن را برای کاربرانی که میخواهند سرویسهای آنلاین اجرا کنند اما نمیخواهند با دردسر مدیریت وابستگیها و فایلهای پیکربندی کنار بیایند جذاب میکند. این مقاله نحوه نصب Docker و Docker Compose را در برخی از محبوبترین توزیعهای لینوکس امروزی به شما آموزش میدهد.
سرفصل ها:
- کاربرد داکر
- نصب داکر در اوبونتو
- نصب داکر در دبیان
- نصب داکر در فدورا
- نصب داکر در ردهت
- نصب داکر در آرچ
- استقرار اولین کانتینر Docker
- استفاده از Docker Compose
****
کاربرد داکر در لینوکس
دلایل استفاده از داکر (Docker) برای خدمات لینوکس چیست؟
پلتفرم های کانتینری مانند داکر روشی محبوب برای نصب سرویسها بر روی دستگاه لینوکس شما هستند. آنها به شما اجازه میدهند تا به راحتی نرمافزارهای پیچیده را به واحدهای قابل حمل جدا کنید که به نوبه خود امنیت سرور شما را بهبود میبخشد.
یکی از ویژگیهای قدرتمند Docker این است که هنگامی که یک کانتینر در یک توزیع کار میکند، کارکرد آن در سایر توزیعها فرآیندی نسبتاً ساده است. این به این دلیل است که داکر تفاوتهای بین این توزیعهای لینوکس را خلاصه میکند و آن را با تغییرات کمی روی کانتینر سازگار میکند.
Docker همچنین مدیریت خدمات را در مقایسه با استقرارهای غیر کانتینری ساده میکند. در اصل، هنگامی که چیزی در سیستم خراب میشود، باید هر سرویس را در آن دستگاه دوباره نصب و پیکربندی کنید. با Docker، فقط باید فایلهای پیکربندی را در دستگاه دیگری کپی کنید، سرویس را راهاندازی کنید و بلافاصله میتوانید از همان جایی که کار را متوقف کردید ادامه دهید.
نصب داکر در اوبونتو
با بررسی اثر انگشت کلید عمومی پروژه رسمی Docker شروع کنید:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --show-keys --with-fingerprint
در حال حاضر، اثر انگشت کلید امضای پروژه داکر: 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 است.
گفته می شود، این کلید ممکن است در آینده تغییر کند. وب سایت رسمی Docker را بررسی کنید تا ببینید آیا آنها مطابقت دارند یا خیر. برای اطمینان از قانونی بودن نرمافزاری که نصب میکنید، ارجاع متقابل به این امر مهم است.
پس از تأیید اعتبار کلید امضا، آن را دانلود و در پوشه /etc/apt/keyrings خود ذخیره کنید:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
از درست بودن بیت های پرمیژن فایل کلیدی اطمینان حاصل کنید:
sudo chmod a+r /etc/apt/keyrings/docker.gpg
یک فایل مخزن جدید برای پروژه Docker ایجاد کنید:
sudo nano /etc/apt/sources.list.d/docker.list
خط کد زیر را در فایل مخزن جدید خود قرار دهید:
deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu noble stable
فایل مخزن جدید خود را ذخیره کنید، سپس مخازن بسته سیستم خود را به روز کنید:
sudo apt update && sudo apt upgrade
بستههای هسته Docker را به همراه افزونه Docker Compose نصب کنید. اینها به شما امکان میدهند برنامههای Docker را مستقر کرده و آنها را به درستی هماهنگ کنید:
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-buildx-plugin
بیشتر دستورات docker باید با sudo پیشوند شوند. اگر میخواهید مجبور نباشید رمز عبور خود را هر بار تایپ کنید، حساب کاربری خود را به گروه docker اضافه کنید:
sudo adduser YOUR-CURRENT-USERNAME docker
از رابط کاربری گرافیکی خود خارج شوید و دوباره وارد شوید. اکنون میتوانید به جای sudo docker ps از دستوراتی مانند docker ps استفاده کنید.
نصب داکر در دبیان
از آنجایی که دبیان توزیع بالادستی لینوکس برای اوبونتو است، از apt برای مدیریت بستهها و مخازن خود نیز استفاده میکند. این بدان معنی است که مراحل تقریباً شبیه به اوبونتو است که تعداد انگشتشماری از کلیدهای GPG و پیوندهای مخزن مخصوص دبیان را ممنوع میکند.
برای شروع، کلید امضای مخزن Docker را از پروژه Docker واکشی کنید:
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
توجه: درست مانند اوبونتو، شما همچنین باید اثر انگشت GPG مخزن دبیان داکر را تأیید کنید. در حال حاضر: 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88.
فایل مخزن apt را برای پروژه Docker ایجاد کنید:
sudo nano /etc/apt/sources.list.d/docker.list
خط کد زیر را در داخل فایل مخزن قرار دهید:
deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian bookworm stable
لیستهای مخزن دستگاه را تازه کنید و سیستم دبیان خود را به روز کنید:
1 | sudo apt update && sudo apt upgrade |
بسته های هسته Docker و افزونه Docker Compose را واکشی و نصب کنید:
1 | sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-buildx-plugin |
حساب کاربری خود را به گروه docker اضافه کنید:
1 | sudo usermod -aG docker YOUR-USERNAME |
برای اعمال تنظیمات جدید، ماشین دبیان خود را مجددا راه اندازی کنید، سپس دستور زیر را اجرا کنید تا بررسی کنید که آیا نصب داکر به درستی کار می کند یا خیر:
1 | docker -v |
نصب داکر در فدورا
برای نصب Docker و Docker Compose در فدورا، ابتدا برنامه مدیریت dnf را دریافت کنید:
1 | sudo dnf install dnf-plugins-core |
جزئیات مخزن Docker را واکشی کنید و آن را به نصب dnf خود متعهد کنید:
1 | sudo dnf config-manager –add-repo https://download.docker.com/linux/fedora/docker-ce.repo |
Docker ،Docker Compose و وابستگیهای آنها را نصب کنید:
1 | sudo dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin |
تأیید کنید که اثر انگشت مخزن Docker این است: 060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35. حرف y را تایپ کنید، سپس Enter را فشار دهید تا فرآیند نصب ادامه یابد:
سرویس Docker systemd را فعال و راهاندازی کنید:
1 | sudo systemctl enable –now docker.service |
مطمئن شوید که حساب کاربری فعلی شما در گروه کاربری docker قرار دارد:
1 | sudo usermod -aG docker YOUR-USERNAME |
از سیستم خارج شوید و دوباره وارد رابط کاربری گرافیکی خود شوید، سپس نصب Docker خود را با اجرای Hello, world! آزمایش کنید:
1 | docker run hello-world |
نصب داکر در ردهت
Red Hat Enterprise Linux (RHEL) یک توزیع پایدار و طولانی مدت در پایین دست فدورا است. برخلاف بالادست خود، RHEL یک محیط ثابت و محکم را فراهم میکند که در آن میتوانید برنامههای خود را به طور قابل اعتماد اجرا کنید. این آن را به سیستمی عالی برای استقرار برنامههایی تبدیل میکند که میخواهید بدون وقفه اجرا کنید.
با واکشی فایل مخزن برای پروژه Docker شروع کنید:
1 | sudo dnf config-manager –add-repo https://download.docker.com/linux/rhel/docker-ce.repo |
Docker ،Docker Compose و وابستگیهای آنها را دریافت و نصب کنید:
1 | sudo dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin |
همچنین میتوانید نسخه Docker را که میخواهید روی سیستم خود اجرا کنید را مشخص کنید. برای انجام این کار، نسخههای موجود Docker را برای دستگاه خود فهرست کنید:
1 | dnf list docker-ce –showduplicates |
در لیست نسخههای موجود اسکرول کنید، سپس شماره نسخهای را که میخواهید نصب کنید کپی کنید.
دستور زیر را در ترمینال خود قرار دهید، سپس مقدار متغیر version را با شماره نسخه خود جایگزین کنید:
1 | version=”YOUR-VERSION-NUMBER-HERE” |
نسخه خاص Docker را در سیستم خود نصب کنید:
1 | sudo dnf install docker-ce-3:$version docker-ce-cli-1:$version containerd.io docker-buildx-plugin docker-compose-plugin |
سرویس Docker را با استفاده از systemctl فعال و اجرا کنید:
sudo systemctl enable --now docker.service
کاربر فعلی خود را به گروه کاربر docker اضافه کنید:
sudo useradd -aG docker YOUR-USERNAME
با اجرای docker –version برای لیست کردن شماره نسخه آن، بررسی کنید که آیا Docker به درستی کار میکند.
نصب داکر در آرچ
Arch Linux قبلاً Docker و Docker Compose را در مخازن انجمن خود گنجانده است. این کار نصب هر دو را به سادگی اجرای Pacman میکند:
sudo pacman -S docker docker-compose containerd docker-buildx
حساب کاربری فعلی را به گروه Docker اضافه کنید:
sudo usermod -aG docker YOUR-USERNAME
دستگاه خود را مجدداً راهاندازی کنید تا سیستم خود را مجدداً بارگیری کنید و Daemon Docker را راهاندازی کنید.
سرویس Docker را فعال کنید تا به طور خودکار هنگام بوت شروع شود و آن را در جلسه فعلی اجرا کند:
1 | sudo systemctl enable –now docker.service |
با اجرای کانتینر Hello, world آزمایش کنید که آیا داکر به درستی کار میکند یا خیر:
1 | docker run hello-world |
استقرار اولین کانتینر Docker
با راهاندازی و اجرای Docker بر روی دستگاه خود، اکنون میتوانید از این پلتفرم برای دریافت برنامهها و خدمات مختلف در سیستم خود استفاده کنید. سریعترین راه برای شروع استفاده از Docker این است که به دنبال کانتینرهای از پیش ساخته شده برای برنامههای محبوب بگردید.
توجه: در حالی که Docker از دستورات یکسانی برای ساخت و اجرای برنامههای مختلف استفاده میکند، هر کانتینری برای کار کردن آنها الزامات منحصربهفرد خود را دارد. به این ترتیب، همیشه باید قبل از کشیدن تصویر داکر، با مستندات کانتینر و راهنمای مناسب مشورت کنید.
گفته شد، با رفتن به Docker Hub و جستجوی برنامهای که میخواهید نصب کنید، شروع کنید. برای این، من از ظرف Nginx Docker استفاده خواهم کرد زیرا میخواهم یک وبسایت استاتیک اولیه را ارائه دهم.
به جلسه ترمینال خود برگردید، سپس یک دایرکتوری برای ظرف Docker خود ایجاد کنید:
1 | mkdir ./docker-nginx && cd ./docker-nginx |
وب سایت استاتیک خود را در دایرکتوری Docker کپی کنید:
1 | cp -r ~/html-site ./docker-nginx |
با استفاده از ویرایشگر متن دلخواه خود، یک Dockerfile در فهرست جدید خود ایجاد کنید:
1 | nano ./Dockerfile |
خطوط کد زیر را داخل Dockerfile خود قرار دهید. با این کار تصویر Nginx بارگیری میشود و وبسایت ثابت از پوشه html-site من در پوشه html داخل ظرف کپی میشود.
12 | FROM nginxCOPY html-site /usr/share/nginx/html |
Dockerfile خود را ذخیره کنید، سپس ظرف Nginx Docker را بسازید:
1 | docker build -t static-nginx . |
کانتینر جدید Docker را با استفاده از دستور فرعی run اجرا کنید:
1 | docker run –name my-nginx-website –publish 8080:80 -d static-nginx |
استفاده از Docker Compose برای اجرای کانتینر
جدا از اجرای مستقیم در خط فرمان، میتوانید از Docker Compose نیز برای راهاندازی کانتینر خود استفاده کنید. این راهی برای ایجاد تنظیمات Docker قابل تکرار است که میتواند در استقرارهای پیچیدهتر مفید باشد.
یک فایل docker-compose.yml در دایرکتوری Docker خود ایجاد کنید:
1 | nano docker-compose.yml |
بلوک کد زیر را در فایل Compose خود قرار دهید:
12345678 | services: nginx: container_name: my-nginx-website build: context: . dockerfile: Dockerfile ports: – 8080:80 |
فایل docker-compose.yml خود را ذخیره کنید، سپس ظرف Docker خود را راه اندازی کنید:
1 | docker compose up -d |
با مراجعه به localhost:8080 با استفاده از مرورگر وب خود، بررسی کنید که آیا وب سایت جدید شما به درستی کار میکند.
منبع:
اوپن کانتنت
*******
داکر، ابزاری قوی برای برنامهنویسان و امکانی برای سرعت بخشیدن مراحل توسعه تا استقرار اپلیکیشنهای مختلف است. این نرمافزار، به صورت بومی، بر روی پلتفرم لینوکس طراحی و توسعه پیدا کرد. امروزه، میتوانید داکر را بر روی سیستم عامل ویندوز و سیستم عامل macOS نیز نصب نمایید. در این پست، به روش نصب داکر، بر روی اوبونتو، خواهیم پرداخت.
فهرست محتوای این مقاله
1 پیش نیازهای نصب داکر، بر روی اوبونتو
2 ورژنهای اوبونتو برای نصب داکر
4 مراحل نصب داکر بر روی اوبونتو
5 اجرای داکر با کاربر غیر root
پیش نیازهای نصب داکر، بر روی اوبونتو
داکر، برخی از خدمات خود را، برای ایران و چند کشور دیگر، مسدود کرده است. به این دلیل، دانلود imageها، از داکرهاب و همچنین اجرای برخی از دستورات، که هنگام اجرا، به سایت، متصل میشوند، از طریق IPهای ایران، امکانپذیر نمیباشد. کاربران در ایران، تنها از طریق تغییر IP، قادر به دسترسی مستقیم به تمام سرویسهای داکر میباشند.
ورژنهای اوبونتو برای نصب داکر
برای نصب موتور داکر، از ورژنهای 64 بیتی ذکر شدهی زیر میتوانید استفاده نمایید.
- اوبونتو نسخهی Impish 21.10
- نسخهی Ubuntu Hirsute 21.04
- اوبونتو نسخهی Groovy 20.10
- نسخهی Ubuntu Focal 20.04 (LTS)
- اوبونتو نسخهی Bionic 18.04 (LTS)
پردازنده
موتور داکر، از معماری پردازندههای زیر، پشتیبانی میکند:
- x86_64 (amd64)
- armhf
- arm64
- s390x
مراحل نصب داکر بر روی اوبونتو
برای شروع، درصورتی که نسخههای قدیمیتر داکر، نصب شده باشد، اقدام به حذف آن مینماییم:
sudo apt-get remove docker docker-engine docker.io containerd runc
سپس، در ابتدا repository اوبونتو را بروز رسانی مینماییم و نرمافزارهای زیر را بر روی آن نصب مینماییم.
sudo apt-get update sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg \ lsb-release
بعد از انجام عملیات نصب، در مرحلهی بعد کلید GPG داکر را اضافه میکنیم:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
سپس، با اجرای دستور بعدی آدرس آخرین نسخهی stable داکر برای اوبونتو، به آدرس مخزن اوبونتو اضافه میگردد. توجه داشته باشید که برای ادامهی مراحل نصب، حتما مخزن اوبونتو را update نمایید:
echo \ "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
اکنون، همه چیز، برای نصب داکر بر روی اوبونتو آماده است. ابتدا دستور update را برای بروزرسانی مخزن اوبونتو اجرا کرده و سپس دستور نصب را اجرا مینماییم.
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
تبریک! اکنون، داکر بر روی اوبونتوی شما نصب گردید. برای اطمینان از صحت مراحل نصب با اولین دستور شروع میکنیم:
1234567891011121314151617181920212223242526 | sudo docker run hello-worldHello from Docker!This message shows that your installation appears to be working correctly.To generate this message, Docker took the following steps: 1. The Docker client contacted the Docker daemon. 2. The Docker daemon pulled the “hello-world” image from the Docker Hub. (amd64) 3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading. 4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal.To try something more ambitious, you can run an Ubuntu container with: $ docker run -it ubuntu bashShare images, automate workflows, and more with a free Docker ID: https://hub.docker.com/For more examples and ideas, visit: https://docs.docker.com/get-started/kazemian@upgradit:~$ |
به علت اینکه این image هنوز نصب دانلود نشده و در مخزن محلی موجود نیست، داکر آنرا از روی داکرهاب دانلود کرده و آن را اجرا میکند. سپس بعد از اجرا شما پیام !Hello from Docker را مشاهده مینمایید.
اجرای داکر با کاربر غیر root
دستورات داکر، بطور پیشفرض با دسترسی کاربر root اجرا میشود. بنابراین در اوبونتو قبل از دستور داکر باید sudo را اضافه نماییم. برای اینکه نیاز به اضافه کردن sudo نباشد، میتوانیم نام user مورد نظر را که مایل هستیم به گروه داکر در etc/group/ اضافه نماییم. در موقع نصب داکر، گروه docker به اوبونتو اضافه میشود. مثلا برای اضافهکردن کاربر kazemian به گروه docker از دستور زیر استفاده مینماییم. با خروج از اوبونتو و ورود مجدد با کاربر kazemian، دیگر برای اجرای دستور داکر نیاز به sudo نمیباشد.
1234 | usermod -aG docker :~ |
برای مشاهدهی ورژن داکری که، بر روی سیستم خود نصب نمودهاید، از دستور زیر استفاده مینماییم:
12345 | docker –version Docker version 20.10.8, build 3967b7dkazemian@upgradeit:~ |
برای مشاهدهی جزئیات بیشتر، از وضعیت داکر نصب شده، از دستور، زیر استفاده میکنیم.
docker info