آموزش نصب داکر روی دبیان #
مقدمه #
داکر یک پلتفرم متنباز است که به شما امکان میدهد با استفاده از کانتینرها، برنامهها را در چندین پلتفرم یا محیط ایجاد، بستهبندی و مستقر کنید. کانتینرها شامل وابستگیها، کتابخانهها، کد و محیط اجرا هستند که به برنامههای شما امکان میدهد به طور مداوم در چندین محیط اجرا شوند.
این مقاله نحوه نصب داکر روی دبیان ۱۲ و اجرای برنامههای کانتینری روی سرور شما را توضیح میدهد. شما تصاویر کانتینر را مستقر کرده و یک رجیستری کانتینر مانند رجیستری کانتینر را برای ذخیره تصاویر کانتینر خود ادغام خواهید کرد.
پیش نیازها #
قبل از شروع:
- یک سرور مجازی که روی آن سیستم عامل دبیان نصب شده باشد.
- دسترسی یوزر root به سرور مجازی.
- برای ذخیره ایمیج Docker خود، یک رجیستری کانتینر ایجاد کنید.
نصب داکر #
داکر در مخازن بسته پیشفرض دبیان ۱۲ موجود است، اما نسخههای بسته موجود ممکن است جدیدترین نباشند. مراحل زیر را دنبال کنید تا مخزن رسمی داکر را به منابع بسته دبیان خود اضافه کنید و آخرین نسخه داکر را روی سرور خود نصب کنید.
- فهرست بستههای سرور را بهروزرسانی کنید.کنسول
$ sudo apt update - بستههای وابستگی لازم را روی سرور خود نصب کنید.کنسول
$ sudo apt install ca-certificates curl - کلید Docker GPG را به حلقههای کلید سرور خود اضافه کنید.کنسول
$ sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc - آخرین اطلاعات مخزن داکر را به لیست منابع APT خود اضافه کنید.کنسول
$ echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
- برای اعمال تغییرات جدید مخزن، فهرست بستههای سرور را بهروزرسانی کنید.کنسول
$ sudo apt update - نصب داکر و تمام بستههای الحاقی لازم مانند
containerd.ioکنسول$ sudo apt install docker-ce docker-ce-cli containerd.io -y - نسخه داکر نصب شده روی سرور خود را مشاهده کنید.کنسول
$ docker --versionخروجی شما باید مشابه تصویر زیر باشد.
Docker version 27.0.3, build 7d4bcd8
مدیریت سرویس سیستم داکر #
داکر از dockerسرویس سیستم برای مدیریت زمان اجرا و پردازشهای Daemon روی سرور شما استفاده میکند. مراحل زیر را برای مدیریت سرویس سیستم داکر دنبال کنید، آن را طوری فعال کنید که هنگام بوت سیستم شروع به کار کند و کاربر غیر ریشه خود را به dockerگروه اضافه کنید تا دستورات CLI را بدون امتیازات sudo اجرا کند.
- سرویس Docker را طوری فعال کنید که به طور خودکار هنگام بوت سیستم اجرا شود.کنسول
$ sudo systemctl enable docker
خروجی:
Synchronizing state of docker.service with SysV service script with /lib/systemd/systemd-sysv-install. Executing: /lib/systemd/systemd-sysv-install enable docker - وضعیت سرویس Docker را مشاهده کنید و تأیید کنید که روی سرور شما در حال اجرا است.کنسول
$ sudo systemctl status dockerخروجی:
● docker.service - Docker Application Container Engine Loaded: loaded (/lib/systemd/system/docker.service; enable> Active: active (running) since Mon 2024-07-01 18:39:27 UTC> TriggeredBy: ● docker.socket Docs: https://docs.docker.com Main PID: 4050 (dockerd) Tasks: 7 Memory: 32.9M CPU: 483ms CGroup: /system.slice/docker.service └─۴۰۵۰ /usr/bin/dockerd -H fd:// --containerd=/run> - سرویس داکر را متوقف کنید.کنسول
$ sudo systemctl stop dockerخروجی:
Warning: Stopping docker.service, but it can still be activated by: docker.socket - سرویس داکر را مجدداً راهاندازی کنید.کنسول
$ sudo systemctl start docker - کاربر غیر روت خود را به
Dockerگروه اضافه کنید تا بتوانید دستورات Docker CLI را بدون دسترسی sudo اجرا کنید.linuxuserنام کاربری واقعی خود را جایگزین کنید.کنسول$ sudo usermod -aG docker linuxuser - تغییرات گروه کاربری جدید را در جلسه فعال خود فعال کنید.کنسول
$ newgrp docker
استقرار برنامه های کانتینر شده با استفاده از داکر #
hello-worldداکر برنامهها را با استفاده از تصاویر کانتینر روی سرور شما اجرا میکند. برای استفاده از Docker CLI و دریافت یک تصویر کانتینر نمونه از رجیستری Docker Hub برای استقرار روی سرور خود، مراحل زیر را دنبال کنید .
hello-worldتصویر کانتینر را از Docker Hub دریافت کنید .کنسول$ docker pull hello-worldخروجی:
Using default tag: latest latest: Pulling from library/hello-world c1ec31eb5944: Pull complete- تمام ایمیج های Docker را روی سرور خود مشاهده کنید و تأیید کنید که
hello-worldتصویر در دسترس است.کنسول$ docker imagesخروجی:
REPOSITORY TAG IMAGE ID CREATED SIZE hello-world latest d2c94e258dcb 14 months ago 13.3kB - با استفاده از ایمیج، یک برنامه کانتینر شده جدید مستقر کنید
hello-world.کنسول$ sudo docker run hello-worldخروجی:
Hello from Docker! This message shows that your installation appears to be working correctly. - تمام فرآیندهای داکر را فهرست کنید و تأیید کنید که
hello-worldکانتینر شما اجرا میشود، اما خارج میشود.کنسول$ sudo docker ps -aخروجی:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 4f979e715721 hello-world "/hello" About a minute ago Exited (0) About a minute ago festive_curran - دستور زیر را برای متوقف کردن یک کانتینر در حال اجرا با استفاده از شناسه آن اجرا کنید. به عنوان مثال،
4f979e715721.کنسول$ sudo docker stop 4f979e715721 rmبرای حذف یک کانتینر از این گزینه استفاده کنید .کنسول$ sudo docker rm 4f979e715721
ورود به رجیستری کانتینر #
یک رجیستری کانتینر، امکان ذخیرهسازی، مدیریت و ارسال تصاویر کانتینر را به محیطهای مختلف بسته به نیاز شما فراهم میکند. داکر با رجیستریهایی مانند رجیستری کانتینر ادغام میشود تا تصاویر کانتینر را روی سرور شما بسازد، ذخیره کند و مستقر کند. برای ورود و استفاده از رجیستری کانتینر خود با داکر، مراحل زیر را دنبال کنید.
- برای دسترسی به اطلاعات رجیستری خود، صفحه مدیریت رجیستری کانتینر خود را با استفاده از پنل ناحیه کاربری باز کنید.
- با استفاده از دستور زیر به رجیستری کانتینر خود وارد شوید
docker login. مقادیر مثال زیر را با اعتبارنامههای واقعی رجیستری خود جایگزین کنید.کنسول$ sudo docker login https://negarnovin.com/examplereg -u example-user -p example-vcr-apخروجی شما در صورت موفقیت باید مشابه تصویر زیر باشد.
WARNING! Using --password via the CLI is insecure. Use --password-stdin. WARNING! Your password will be stored unencrypted in /home/hum/.docker/config.json. Configure a credential helper to remove this warning. See https://docs.docker.com/engine/reference/commandline/login/#credential-stores Login Succeeded - تمام تصاویر Docker موجود در سرور خود را فهرست کنید.کنسول
$ docker imagesخروجی:
REPOSITORY TAG IMAGE ID CREATED SIZE hello-world latest d2c94e258dcb 14 months ago 13.3kBتصویر
hello-worldبر اساس خروجی فوق روی سرور شما موجود است، از تصویر برای برچسبگذاری و تأیید دسترسی به رجیستری کانتینر خود استفاده کنید. - تصویر محلی
hello-worldداکر را با برچسب رجیستری کانتینر مورد نظر خود برچسبگذاری کنید. برای مثال،negarnovin.com/examplereg/hello-world:latest.کنسول$ docker tag hello-world:latest negarnovin.com/examplereg/hello-world:latest - تمام ایمیج های Docker موجود در سرور خود را فهرست کنید.کنسول
$ docker imagesتأیید کنید که تصویر برچسبگذاری شده جدید مشابه خروجی زیر در دسترس است.
REPOSITORY TAG IMAGE ID CREATED SIZE hello-world latest d2c94e258dcb 14 months ago 13.3kB negarnovin.com/examplereg/hello-world latest d2c94e258dcb 14 months ago 13.3kB - ایمیج برچسبگذاری شده را به رجیستری کانتینر خود منتقل کنید.کنسول
$ docker push negarnovin.com/examplereg/hello-worldخروجی شما در صورت موفقیت باید مشابه تصویر زیر باشد.
Using default tag: latest The push refers to repository [negarnovin.com/examplereg/hello-world] ac28800ec8bb: Pushed latest: digest: sha256:d37ada95d47ad12224c205a938129df7a3e52345828b4fa27b03a98825d1e2e7 size: 524 - به صفحه مدیریت رجیستری کانتینر خود دسترسی پیدا کنید، به برگه مخازن بروید و تأیید کنید که مخزن تصویر جدید Docker در دسترس است.

- با استفاده از تصویر Docker از رجیستری کانتینر خود، یک برنامه کانتینر جدید مستقر کنید.کنسول
$ docker run negarnovin.com/testreg/hello-worldخروجی:
Hello from Docker! This message shows that your installation appears to be working correctly.
نتیجه گیری #
شما Docker را روی سرور Debian 12 خود نصب کرده و یک برنامه کانتینر شده نمونه را مستقر کردهاید. Docker به شما امکان میدهد چندین برنامه را بسازید و مستقر کنید، پورتهای میزبان خاص را به پورتهای کانتینر خود متصل کنید و به طور ایمن به برنامههای کانتینر شده دسترسی داشته باشید. برای اطلاعات بیشتر و گزینههای پیکربندی، به مستندات رسمی Docker مراجعه کنید .
