آشنایی مقدماتی با داکر (Docker)

اگر شما یک توسعه دهنده هستید و می خواهید با داکر آشنا شوید، این مقاله برای شما است.

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

داکر چیست؟

داکر یک نرم افزار رایگان است که توسط Docker Inc توسعه یافته است. این نرم افزار در 13 مارس 2013 به طور عمومی ارائه شد و از آن روز به یک الزام در دنیای توسعه فناوری اطلاعات تبدیل شده است.

داکر به کاربران اجازه می دهد تا محیط های مستقل و ایزوله برای راه اندازی و استقرار برنامه های خود ایجاد کنند. به این محیط ها کانتینر (container) می گویند.

داکر به توسعه دهنده اجازه می دهد یک کانتینر را روی هر ماشینی اجرا کند.

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

آیا داکر نوعی VM (ماشین مجازی) است؟

این یکی از سوالات متداولی است که در مورد داکر پرسیده می شود. پاسخ این است: در واقع، نه کاملا.

داکر ممکن است در ابتدا شبیه یک ماشین مجازی به نظر برسد اما عملکرد متفاوتی دارد.

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

اما داکر فقط منابع ماشین میزبان را برای اجرای محیط های خود به اشتراک می گذارد.

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

چرا باید از داکر استفاده کنیم؟

این ابزار واقعاً می تواند زندگی روزمره یک توسعه دهنده را تغییر دهد. برای اینکه بهترین پاسخ به این سوال را بدهیم، برخی از مزایای داکر را در لیست زیر آورده ایم:

  • داکر سریع است. بر خلاف ماشین مجازی، برنامه شما می تواند در چند ثانیه شروع شود و به همان سرعت متوقف شود.
  • داکر چند پلتفرمه است. یعنی شما می توانید کانتینر خود را در هر سیستمی راه اندازی کنید.
  • کانتینرها را می توان سریعتر از ماشین مجازی ساخت و از بین برد.
  • دیگر مشکلی در راه اندازی محیط کدنویسی خود ندارید. پس از پیکربندی Docker، دیگر نیازی به نصب مجدد وابستگی (dependency) های خود به صورت دستی نخواهید داشت. اگر رایانه‌ها را عوض می‌کنید یا اگر کارمندی به شرکت شما می‌پیوندد، فقط باید پیکربندی خود را به آنها بدهید.
  • فضای کار شما تمیز نگه داشته می شود، زیرا هر یک از محیط های شما ایزوله می شود و می توانید هر زمان که بخواهید آنها را بدون تأثیر بر بقیه حذف کنید.
  • استقرار پروژه خود بر روی سرور به منظور آنلاین کردن آن آسان تر خواهد بود.

ایجاد اولین برنامه در داکر

حالا که تا حدودی با داکر آشنا شدید، زمان آن رسیده که اولین برنامه خود را ایجاد کنید!

هدف از این آموزش کوتاه ایجاد یک برنامه پایتون است که یک جمله را نمایش می دهد. این برنامه باید از طریق Dockerfile راه اندازی شود.

زمانی که فرآیند را درک کنید، متوجه خواهید شد که خیلی پیچیده نیست.

توجه: برای انجام این کار نیازی به نصب پایتون روی کامپیوترتان ندارید. این وظیفه ی داکر است که پایتون را برای اجرای کد شما نصب داشته باشد.

1. Docker را روی دستگاه خود نصب کنید

برای Ubuntu:

ابتدا پکیج های خود را به روز کنید:

$ sudo apt update

بعد، docker را با apt-get نصب کنید:

$ sudo apt install docker.io

در نهایت، بررسی کنید که Docker به درستی نصب شده باشد:

$ sudo docker run hello-world

2. پروژه خود را ایجاد کنید

برای ایجاد اولین برنامه داکر خود، یک پوشه در رایانه خود ایجاد کنید. این پوشه باید شامل دو فایل زیر باشد:

  • یک فایل “main.py” (فایل پایتون که حاوی کدی است که باید اجرا شود).
  • یک فایل “Dockerfile” (فایل Docker که حاوی دستورالعمل های لازم برای ایجاد محیط است).

درنهایت شما باید پوشه با معماری زیر را داشته باشید:

.
├── Dockerfile
└── main.py
0 directories, 2 files

3. فایل پایتون را ویرایش کنید

می توانید کد زیر را به فایل “main.py” اضافه کنید:

#!/usr/bin/env python3

print("Docker is magic!")

کد بالا چیز پیچیده ای نیست. زمانی که “Docker is magic!” در ترمینال شما نمایش داده شود، متوجه می شوید که داکر شما کار می کند.

4. فایل داکر را ویرایش کنید

یک نظریه: زمانی که می خواهید Dockerfile خود را ایجاد کنید، اولین کاری که باید انجام دهید این است که از خود بپرسید چه کاری می خواهید انجام دهید. هدف ما در اینجا راه اندازی کد پایتون است.

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

اولین قدمی که باید در هنگام ایجاد یک فایل Docker بردارید، دسترسی به وب سایت DockerHub است. این سایت حاوی بسیاری از image های از پیش طراحی شده برای صرفه جویی در وقت شما است (به عنوان مثال: image برای لینوکس یا زبان های برنامه نویسی).

برای برنامه ما، “Python” را در نوار جستجوی DockerHub تایپ می کنیم. اولین نتیجه، image رسمی برای اجرای پایتون است که ما از آن استفاده می کنیم.

یک dockerfile همیشه باید با وارد کردن image پایه شروع شود. برای این کار از عبارت “FROM” استفاده می کنیم. در مثال ما، می‌خواهیم image پایتون را وارد کنیم. بنابراین ما برای نام image، عبارت “python” و برای نسخه، “latest” را می‌نویسیم.

برای راه اندازی کد پایتون، باید آن را در image خود وارد کنیم. برای این کار از عبارت “COPY” استفاده می کنیم. اولین پارامتر “main.py” نام فایل روی هاست است. پارامتر دوم ‘/’ مسیری است که فایل را روی image قرار می دهیم. در اینجا فایل را در پوشه روت image قرار می دهیم.

ما باید دستوری را برای اجرا در هنگام اجرای image تعریف کنیم. برای این کار از عبارت “CMD” استفاده می کنیم. دستور زیر “python ./main.py” را اجرا می کند.

# A dockerfile must always start by importing the base image.
# We use the keyword 'FROM' to do that.
# In our example, we want import the python image.
# So we write 'python' for the image name and 'latest' for the version.
FROM python:latest

# In order to launch our python code, we must import it into our image.
# We use the keyword 'COPY' to do that.
# The first parameter 'main.py' is the name of the file on the host.
# The second parameter '/' is the path where to put the file on the image.
# Here we put the file at the image root folder.
COPY main.py /

# We need to define the command to launch when we are going to run the image.
# We use the keyword 'CMD' to do that.
# The following command will execute "python ./main.py".
CMD [ "python", "./main.py" ]

4. image داکر را ایجاد کنید

وقتی که کد شما آماده شد و Dockerfile نوشته شد، تنها کاری که باید انجام دهید این است که image خود را ایجاد کنید تا حاوی برنامه شما باشد.

$ docker build -t python-test .

گزینه ‘-t‘ به شما این امکان را می دهد نام تصویر خود را تعریف کنید. در مثال ما “python-test” را انتخاب کرده ایم اما شما می توانید هرچه که می خواهید قرار دهید.

5. image داکر را اجرا کنید

پس از ایجاد image، کد شما آماده ی اجرا است.

$ docker run python-test

شما باید نام image خود را بعد از “docker run” قرار دهید.

در این مرحله باید “Docker is magic!” در ترمینال شما نمایش داده شود.

دستورات کاربردی برای Docker

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

  • لیست image های خود را ببینید.
$ docker image ls
  • یک image خاص را حذف کنید.
$ docker image rm [image name]
  • تمام image های موجود را حذف کنید.
$ docker image rm $(docker images -a -q)
  • فهرست تمام کانتینرهای موجود (در حال اجرا و متوقف).
$ docker ps -a
  • یک کانتینر خاص را متوقف کنید.
$ docker stop [container name]
  • تمام کانتینرهای در حال اجرا را متوقف کنید.
$ docker stop $(docker ps -a -q)
  • یک کانتینر خاص را حذف کنید (فقط در صورت توقف).
$ docker rm [container name]
  • همه کانتینرها را حذف کنید (فقط در صورت توقف).
$ docker rm $(docker ps -a -q)
  • نمایش لاگ های مربوط به یک کانتینر.
$ docker logs [container name]

3 دیدگاه

  1. سلام. عالی بود. مختصر و مفید.
    سوال اینکه اگر سیستم عامل ویندوز داشته باشیم به نظر نصب داکر طولانی است. هنوز فایلش دانلود نشده.

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *