استفاده از فناوریهای مجازی سازی برای اجرای برنامهها به صورت مستقل و ایزوله از سیستم عامل راهکاری است که بسیاری از توسعهدهندگان برای تست و اجرای همزمان قابلیتها و بخشهای توسعه یک پروژه به آن نیاز دارند. یکی از ابزارهای محبوب برای این هدف، داکر (Docker) است. نصب داکر روی سرور ابری و استفاده از آن توسط یک تیم توسعه، باعث میشود تا همه اعضای تیم بتوانند فرایند توسعه را به شکلی بهینه و بدون اتلاف وقت انجام دهند.
علاوه بر این، نصب پلتفرم داکر روی سرورها باعث میشود تا توسعهدهندگان بدون نیاز به درگیر کردن منابع سختافزاری دستگاه خود بتوانند امکان تست کردن اپلیکیشنها را در کنار توسعهی آنها در اختیار داشته باشند. علاوه بر این میتوان از طریق این پلتفرم، چندین سیستم عامل را روی سرور اجرا کرد و از آنها برای اجرای نرمافزارها و اهداف مختلف مورد استفاده قرار داد. در ادامه این مطلب به این موضوع خواهیم پرداخت که Docker چیست و دقیقا چه کاری انجام میدهد.
داکر چیست و چرا نصب آن روی سرور مهم است؟
داکر (Docker) یک پلتفرم متنباز است که به برنامهنویسان و توسعهدهندگان اجازه میدهد برنامهها و بستههای نرمافزاری را به صورت مستقل، در محیطی ایزوله اجرا کنند. از طریق استفاده از داکر، برنامهها درون واحدهایی به نام “کانتینرها” (Containers) قرار میگیرند که شامل تمامی وابستگیها و کتابخانههای لازم برای اجرای برنامه هستند. در واقع، هر کانتینر شامل یک محیط اجرایی مستقل است که به صورت جداگانه و ایزوله از سایر کانتینرها و سیستم عامل اصلی اجرا میشود. این مشخصه مهم به توسعهدهندگان امکان تست اپلیکیشن را مستقل از سیستم عامل در حال اجرا میدهد.
یکی از مشخصههای مهم دارک، پشتیبانی از پکیج Docker Container Image است که در حقیقت قالبهایی آماده برای اجرا تمام پیشنیازهای لازم برای اجرای اپلیکیشن در کانتینر هستند. برنامهنویسان و توسعهدهندگان میتوانند Imageها را از مخازن مرکزی داکر دانلود کنند یا خودشان آنها را بسته به نیازشان ساخته و استفاده کنند. Imageها به عنوان یک الگو برای ایجاد کانتینرها استفاده میشوند و از طریق آنها میتوان برنامهها را به صورت قابل حمل و تکرارپذیر در هر سیستمعاملی اجرا کرد.
نصب داکر روی سرور ابری این امکان را فراهم میکند تا چندین محیط و سیستم عامل مختلف را بسته به نیاز خودتان روی سرور در اختیار داشته باشید و از آن برای اجرای نرمافزارهای مختلف در پلتفرمهای گوناگون به صورت همزمان روی یک سرور استفاده کنید. این مشخصه باعث میشود تا علاوه بر کاهش هزینهها بتوانید با استفاده از یک سرور یکپارچه و بدون دردسرهای مربوط به دسترسی به چندین سرور با استفاده از سیستم عاملهای مختلف امکان اجرای نرمافزارها را به صورت همزمان و موازی در سیستم عاملهای چندگانه داشته باشید.
علاوه بر این، هر کانتینر داکر به صورت ایزوله اجرا میشود، به این معنی که تغییرات در یک کانتینر تأثیری بر سایر کانتینرها ندارد و این موضوع باعث میشود تا بتوان به صورت همزمان نرمافزارهای مختلف را در محیطهای متفاوت اجرا رد.
از طرفی برنامهها و کانتینرهای داکر میتوانند به راحتی از یک محیط به محیط دیگر منتقل شوند و بدون نیاز به تغییرات در سیستم عامل یا محیط اجرایی قابلیت توسعه و استقرار را محیا میسازد. قابلیت مقیاسپذیری یکی دیگر از مشخصههای مهم داکر است؛ با استفاده از داکر، میتوان به راحتی برنامه توسعهیافته و مقیاسپذیر را اجرا کرد. با استفاده از قابلیتهایی مانند تعریف خودکار و تکرارپذیری Imageها و کانتینرها، میتوان برنامهها را به سادگی در مقیاسهای مختلف اجرا کرد و به نیازهای متغیر وبسایتها و سرویسهای آنلاین پاسخ داد.
بررسی تفاوت میان Docker و ماشین مجازی
داکر از فناوریهای مانند مجازیسازی سطح سیستم عامل (OS-level virtualization) استفاده میکند که سبب میشود هزینهها برای اجرای اپلیکیشنها به صورت همزمان کاهش یابد و کارایی سیستم افزایش پیدا کند. در صورت استفاده از ماشین مجازی، هر ماشین تنها امکان اجرای یک نرم افزار را دارد و منابع سختافزاری به شکلی قابل توجهتر درگیر میشوند. این در حالی است که استفاده از داکر برای توسعهی نرمافزار باعث میشود تا امکان اجرای آن نرمافزار به صورت بهینه و با صرفهجویی در منابع سختافزاری فراهم باشد و دیگر نیازی به درگیر کردن منابع سختافزاری به میزان زیاد برای هر بار اجرای یک نرمافزار نباشیم.
داکر همچنین از APIهای مشخصی استفاده میکند که امکان اتصال میان کلاینتها و Deamonهای مبتنی بر شبکه یا سرور مجازی یا ابری را فراهم میآورد. این موضوع باعث میشود تا استفاده از این پلتفرم گزینهای بهینهتر برای تست و اجرای یک نرمافزار به حساب اید.
نصب داکر روی سرور ابری اوبونتو
برای نصب داکر روی سرور ابری اوبونتو کافی است از طریق SSH به سرور خود متصل شوید و به ترتیب، دستورهای زیر را وارد کنید:
$ sudo apt-get update $ sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
برای اضافه کردن کلید GPG داکر، دستور زیر را وارد کنید:
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
برای اضافه کردن مخزن داکر به لیست مخازن APT سیستم، دستور زیر را وارد کنید:
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
برای نصب داکر، دستور زیر را وارد کنید:
$ sudo apt-get update $ sudo apt-get install docker-ce docker-ce-cli containerd.io
پس از پایان یافتن مراحل فوق، برای تست نصب داکر، دستور زیر را وارد کنید:
$ sudo docker run hello-world
اگر تمامی موارد، به درستی نصب شده باشد، باید پیام “Hello from Docker!” را در خروجی ببینید.
اگر از پنل ویراک تصمیم به نصب داکر روی سرور ابری اوبونتو را دارید، میتوانید از دستورهای Cloud Init پیش از ساخت سرور استفاده کنید:
#cloud-config package_upgrade: true packages: - apt-transport-https - ca-certificates - curl - software-properties-common runcmd: - curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg - echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list - apt-get update - apt-get install -y docker-ce docker-ce-cli containerd.io - usermod -aG docker $USER
نصب داکر روی سرور ابری CentOS
در صورتی که تصمیم به راهاندازی سرور ابری CentOS نسخه ۷ را دارید میتوانید از این دستورها برای نصب داکر استفاده کنید:
$ yum update $ yum install -y yum-utils device-mapper-persistent-data lvm2 $ yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo $ yum install -y docker-ce $ systemctl enable docker $ systemctl start docker $ docker –version
برای نصب داکر روی سرور ابری CentOS 8 نیز میتوانید از این دستورها به ترتیب استفاده کنید:
$ dnf update $ dnf install -y dnf-utils device-mapper-persistent-data lvm2 $ dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo $ dnf install -y docker-ce $ systemctl enable docker $ systemctl start docker $ docker --version
همچنین اگر از پنل ابرویراک برای ساخت سرور ابری استفاده میکنید، میتوانید از دستورهای Cloud init برای نصب داکر روی سرور CentOS خود در حین ساخت استفاده کنید:
#cloud-config package_upgrade: true packages: - yum-utils - device-mapper-persistent-data - lvm2 runcmd: - curl -fsSL https://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo - yum install -y docker-ce - systemctl enable docker - systemctl start docker - usermod -aG docker $USER