در این آموزش با نحوه‌ی نصب و استفاده از داکر در Ubunto 20.04 آشنا می‌شین.
اما ابتدا قصد داریم شما رو با داکر بیش‌تر آشنا کنیم و بعد از اون می‌ریم سراغ نصب داکر در Ubuntu 20.04.

داکر چیست؟

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

محیط های اجرایی کوچک و سبک که به طور مشترک از هسته‌ی سیستم‌عامل استفاده می‌کنن، اما در عین حال در یک محیط ایزوله و کاملا جدا از هم قرار گرفتن.   

هر چند مفهوم کانتینر از مدتی قبل در حوزه‌ی تکنولوژی وجود داشت، اما داکر به عنوان یک پروژه‌ی متن‌باز در سال 2013 معرفی و راه‌اندازی شد.
در واقع داکر باعث شد کانتینر جان تازه‌ای بگیره و به محبوبیت کانتینر کمک زیادی کرد.

پکیج نصب داکر در مخازن رسمی Ubuntu 20.04 موجوده، اما ممکنه در این مخزن، آخرین ورژن داکر وجود نداشته باشه.

به همین دلیل می‌تونین آخرین پکیج داکر رو از از مخزن رسمی داکر دریافت و نصب کنین.

در این پست نحوه‌ی انجام این‌کار بهتون آموزش داده می‌شه.

توجه: برای نصب داکر به ورژن 64 بیتی Ubunto و همچنین ورژن 3.10 هسته (یا بیش‌تر از 3.10 ) نیاز دارین.

سرور پیش فرض 64 بیتی Ubuntu 20.04 شرایط لازم برای نصب داکر رو داره.

نصب داکر در Ubuntu 20.04

توجه: در این آموزش تمام دستورات به عنوان کاربر غیر root اجرا می‌شن، اما اگه دسترسی root لازم باشه، باید هر دستوری رو با پیشوند sudo اجرا کنین. 

- برای فعال کردن مخازن داکر، کلید رسمی داکر اهمیت بالایی داره. پس اول باید با استفاده از کلید رسمی GPG داکر، مخازن اصلی داکر رو به سیستم‌عامل اضافه کنین: 

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

- در مرحله‌ی بعدی مخزن داکر رو به لیست APT اضافه کنین: 

sudo bash -c 'echo "deb [arch=amd64] https://download.docker.com/linux/ubuntu eoan stable" > /etc/apt/sources.list.d/docker-ce.list'


توجه:  هنگام استفاده از APT پایدار، ممکنه با خطای E: Package 'docker-ce' has no installation مواجه بشین. چون ورژن پایدار داکر برای Ubunto 20.04، هنوز موجود نیست.  

در این صورت شما باید از ورژن  edge / test استفاده کنین. 

ورژن‌های پایدار به صورت چهارگانه منتشر می‌شن، بنابراین ۰03 ، 06. ، ۰09 و 12. ورژن‌های پایدار هستن.

- بعد از اضافه شدن مخزن داکر به لیست مخازن APT، باید پکیج‌ها رو به روز کنین تا مطمئن بشین که لیست آدرس‌های نصب داکر درون سیستم شما بارگذاری شده باشه:‌ 

sudo apt-get update

- اطمینان حاصل کنین که داکر رو از مخزن اصلی داکر نصب می‌کنین، نه از مخزن پیش فرض Ubuntu 20.04:

apt-cache policy docker-ce

خروجی‌ باید مشابه زیر باشه:

docker-ce:
  Installed: (none)
  Candidate: 5:19.03.8~3-0~ubuntu-eoan
  Version table:
     5:19.03.8~3-0~ubuntu-eoan 500
        500 https://download.docker.com/linux/ubuntu eoan/stable amd64 Packages
     5:19.03.7~3-0~ubuntu-eoan 500
        500 https://download.docker.com/linux/ubuntu eoan/stable amd64 Packages
     5:19.03.6~3-0~ubuntu-eoan 500
        500 https://download.docker.com/linux/ubuntu eoan/stable amd64 Packages

توجه کنین که docker-ce نصب نشده! اما مخزن داکر برای Ubuntu 19.10 فعاله. شماره‌ی ورژن docker-ce ممکنه متفاوت باشه. 

- و حالا به سادگی با دستور زیر داکر رو نصب کنین:

sudo apt-get install -y docker-ce

- حالا داکر باید بعد از نصب فعال شده و شروع به کار کنه. با تایپ دستور زیر می‌تونین بررسی کنین:

sudo systemctl status docker

- خروجی مشابه زیر خواهد بود:

● docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2020-05-03 10:07:04 UTC; 58s ago
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
   Main PID: 4132 (dockerd)
      Tasks: 8
     Memory: 39.2M
     CGroup: /system.slice/docker.service
             └─4132 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

May 03 10:07:04 ubuntu dockerd[4132]: time="2020-05-03T10:07:04.551724122Z" level=warning msg="Your kernel does not support swap memory limit"
May 03 10:07:04 ubuntu dockerd[4132]: time="2020-05-03T10:07:04.552108226Z" level=warning msg="Your kernel does not support cgroup blkio weight"
May 03 10:07:04 ubuntu dockerd[4132]: time="2020-05-03T10:07:04.552263337Z" level=warning msg="Your kernel does not support cgroup blkio weight_device"
May 03 10:07:04 ubuntu dockerd[4132]: time="2020-05-03T10:07:04.552742555Z" level=info msg="Loading containers: start."
May 03 10:07:04 ubuntu dockerd[4132]: time="2020-05-03T10:07:04.706027140Z" level=info msg="Default bridge (docker0) is assigned with an IP address 172.17.0.0/16. Daemon option --bip can be used to set a preferred IP address"
May 03 10:07:04 ubuntu dockerd[4132]: time="2020-05-03T10:07:04.787975604Z" level=info msg="Loading containers: done."
May 03 10:07:04 ubuntu dockerd[4132]: time="2020-05-03T10:07:04.820931732Z" level=info msg="Docker daemon" commit=afacb8b7f0 graphdriver(s)=overlay2 version=19.03.8
May 03 10:07:04 ubuntu dockerd[4132]: time="2020-05-03T10:07:04.821373143Z" level=info msg="Daemon has completed initialization"
May 03 10:07:04 ubuntu systemd[1]: Started Docker Application Container Engine.
May 03 10:07:04 ubuntu dockerd[4132]: time="2020-05-03T10:07:04.869610410Z" level=info msg="API listen on /run/docker.sock"

اجرای دستورات داکر به عنوان کاربر غیر root یا بدون Sudo (اختیاری)

به طور پیش‌فرض، فقط root و کاربر دارای امتیازات sudo، می‌تونن دستورات داکر رو اجرا کنن. 

علاوه بر این کاربری که در docker group وجود داره هم می‌تونه دستورات رو اجرا کنه.
(docker group در حین نصب داکر به طور خودکار ایجاد میشه)

- در صورت اجرای دستورات داکر به عنوان کاربر غیر root یا کاربری که در docker group وجود نداره، خروجی زیر رو مشاهده می‌کنین:

docker: Cannot connect to the Docker daemon. Is the docker daemon running on this host?.
See 'docker run --help'.

- حالا اگر بخواین زمانی که دستور داکر رو اجرا می‌کنین، پیشوند sudo رو تایپ نکنین، باید username تون رو به docker group اضافه کنین.

برای انجام این‌کار دستور زیر رو تایپ کنین:

sudo usermod -aG docker ${USER}

- برای اعمال شدن عضویت در گروه جدید، باید از سیستم خارج و مجددا وارد سیستم بشین تا عضویت گروه رفرش بشه، یا این‌که دستور زیر رو تایپ کنین: 

su ${USER}

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

بعد از اون، می‌تونین با تایپ کردن دستور زیر تأیید کنین که به docker group اضافه شدین:

id -nG

- و در خروجی دارین:

username sudo docker

- اگر بخواین کاربری رو به docker group ای که وارد آن نشدین، اضافه کنین، باید نام یوزر مورد نظرتون رو مشخص کنین:

sudo usermod -aG docker username


جمع‌بندی

در این پست نحوه‌ی نصب داکر در  Ubuntu 20.04 v رو نشون دادیم.
فرض کردیم که شما دستورات داکر رو به عنوان کاربری در docker group یا  کاربر غیر root اجرا می‌کنین.
در غیر این صورت باید به اول دستورات، پیشوند sudo رو اضافه کنین.

اگه اطلاعات بیش‌تری درمورد داکر می‌خواین، می‌تونین اینجا بخونین.


منابع:

How to Install Docker on Ubuntu 20.04
What is Docker? The spark for the container revolution