آموزش نصب داکر روی اوبونتو 22.04 به زبان ساده

پربازیدترین مقالات

محصولات

آموزش نصب داکر روی اوبونتو 22.04

داکر اپلیکیشنی است که فرایند مدیریت فرایندهای اپلیکیشن را در کانتینرها (Container) آسان می‌کند. کانتینرها این امکان را برای شما فراهم می‌کنند که منابع مورد نیاز برای اپلیکیشن‌های خود را از داخل داکر تامین و آن‌ها را اجرا کنید. کانتینرها را می‌توان به ماشین‌های مجازی تشبیه کرد؛ با این تفاوت که کانتینرها قابل‌حمل‌تر هستند و وابستگی بیشتری به سیستم عامل میزبان دارند. در این مقاله قصد داریم نحوه نصب داکر روی اوبونتو را آموزش دهیم. با خواندن ادامه مطلب به‌راحتی می‌توانید داکر را نصب کرده و با کانتینرها و تصاویر کار کنید.

پیش‌نیازهای نصب داکر روی اوبونتو 22.04

برای نصب داکر در اوبونتو با روش مطرح در این مقاله به موارد زیر نیاز دارید:

  • یک سرور اوبونتو 22.04 تنظیم‌شده با یک کاربر غیرریشه سودو (Sudo non-root user) و یک فایروال
  • یک حساب کاربری در Docker Hub

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

گام اول: نصب داکر

پکیج نصب داکر موجود در مخزن (Repository) رسمی اوبونتو ممکن است آخرین نسخه نباشد. به همین خاطر برای اطمینان از دریافت آخرین نسخه، بهتر است آن را از مخزن رسمی Docker نصب کنیم. برای انجام این کار یک منبع پکیج جدید و کلید GPG را از داکر اضافه می‌کنیم تا از معتبر بودن دانلودها مطمئن شویم و سپس پکیج را نصب می‌کنیم.

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

sudo apt update

سپس تعدادی پکیج پیش‌نیاز را نصب کنید تا به apt اجازه دهد از پکیج‌ها از طریق HTTPS استفاده کند:

sudo apt install apt-transport-https ca-certificates curl software-properties-common

در ادامه کلید GPG را برای مخزن رسمی Docker به سیستم خود اضافه کنید:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

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

echo "deb [arch=$(dpkg --print-architecture) 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

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

sudo apt update

برای اطمینان از اینکه در حال دانلود پکیج نصب از مخزن داکر هستید، نه مخزن پیش‌فرض اوبونتو، دستور زیر را اجرا کنید:

apt-cache policy docker-ce

با اجرای دستور بالا، نتیجه‌ای مشابه زیر به شما نمایش داده خواهد شد؛ البته ممکن است عدد ورژن برای Docker متفاوت باشد:

docker-ce:

  Installed: (none)

  Candidate: 5:20.10.14~3-0~ubuntu-jammy

  Version table:

     5:20.10.14~3-0~ubuntu-jammy 500

        500 https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages

     5:20.10.13~3-0~ubuntu-jammy 500

        500 https://download.docker.com/linux/ubuntu jammy/stable amd64 Packages

توجه کنید که تا این مرحله هنوز docker-ce نصب نشده است. برای نصب داکر در اوبونتو دستور زیر را اجرا کنید:

sudo apt install docker-ce

اکنون Docker باید نصب شده، دیمن (daemon) آغاز به کار کرده و فرایند برای شروع در بوت فعال شده باشد. با دستور زیر بررسی کنید که فرایند در حال اجراست:

sudo systemctl status docker

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

Output

● docker.service - Docker Application Container Engine

     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)

     Active: active (running) since Fri 2022-04-01 21:30:25 UTC; 22s ago

TriggeredBy: ● docker.socket

       Docs: https://docs.docker.com

   Main PID: 7854 (dockerd)

      Tasks: 7

     Memory: 38.3M

        CPU: 340ms

     CGroup: /system.slice/docker.service

             └─7854 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

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

گام دوم: اجرای دستور داکر بدون Sudo (گام اختیاری)

دستور docker به‌طور پیش‌فرض فقط می‌تواند توسط کاربر ریشه (Root) یا کاربری در گروه داکر اجرا شود که به‌طور خودکار در طول فرایند نصب Docker ایجاد می‌شود. اگر شما قصد اجرای دستور docker بدون پیشوند با sudo یا بدون قرار گرفتن در گروه داکر را دارید، خروجی مانند زیر دریافت خواهید کرد:

Output

docker: Cannot connect to the Docker daemon. Is the docker daemon running on this host?.

See 'docker run --help'.

اگر هنگام اجرای دستور docker قصد تایپ کردن Sudo را ندارید، نام کاربری خود را به گروه docker اضافه کنید:

sudo usermod -aG docker ${USER}

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

su - ${USER}

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

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

Groups

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

Output

sammy sudo docker

اگر قصد اضافه کردن کاربری را به گروه docker دارید که به آن وارد نشده‌اید، با استفاده از دستور زیر نام کاربری مورد نظرتان را صریحا اعلام کنید:

sudo usermod -aG docker username

در ادامه این مقاله فرض را بر این می‌گیریم که شما دستور docker را به‌عنوان یک کاربر در گروه docker اجرا می‌کنید. در غیر این صورت لطفا دستورات را با sudo بنویسید. در ادامه دستور docker را مورد بررسی قرار می‌دهیم. اگر هنوز اطلاعات کافی درباره داکر ندارید، بهتر است ابتدا درباره داکر بیشتر بدانید تا بتوانید استفاده بهتر و مفیدتری از این پلتفرم منبع‌باز داشته باشید.

گام سوم: استفاده از دستور Docker

استفاده از دستور docker شامل زنجیره‌ای از گزینه‌ها (Options)، دستورات (Commands) و در انتها آرگومان‌ها (Arguments) است که باید به شکل زیر باشد:

docker [option] [command] [arguments]

برای مشاهده همه زیردستورها (Subcommands) عبارت زیر را تایپ کنید:

docker

لیست کامل زیردستورهای موجود در داکر نسخه 20.10.14 شامل موارد زیر می‌شود:

Output

 attach      Attach local standard input, output, and error streams to a running container

  build       Build an image from a Dockerfile

  commit      Create a new image from a container's changes

  cp          Copy files/folders between a container and the local filesystem

  create      Create a new container

  diff        Inspect changes to files or directories on a container's filesystem

  events      Get real time events from the server

  exec        Run a command in a running container

  export      Export a container's filesystem as a tar archive

  history     Show the history of an image

  images      List images

  import      Import the contents from a tarball to create a filesystem image

  info        Display system-wide information

  inspect     Return low-level information on Docker objects

  kill        Kill one or more running containers

  load        Load an image from a tar archive or STDIN

  login       Log in to a Docker registry

  logout      Log out from a Docker registry

  logs        Fetch the logs of a container

  pause       Pause all processes within one or more containers

  port        List port mappings or a specific mapping for the container

  ps          List containers

  pull        Pull an image or a repository from a registry

  push        Push an image or a repository to a registry

  rename      Rename a container

  restart     Restart one or more containers

  rm          Remove one or more containers

  rmi         Remove one or more images

  run         Run a command in a new container

  save        Save one or more images to a tar archive (streamed to STDOUT by default)

  search      Search the Docker Hub for images

  start       Start one or more stopped containers

  stats       Display a live stream of container(s) resource usage statistics

  stop        Stop one or more running containers

  tag         Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE

  top         Display the running processes of a container

  unpause     Unpause all processes within one or more containers

  update      Update configuration of one or more containers

  version     Show the Docker version information

  wait        Block until one or more containers stop, then print their exit codes

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

docker docker-subcommand --help

برای مشاهده اطلاعات کل سیستم (System-wide) درباره Docker از عبارت زیر استفاده کنید:

docker info

در ادامه مطلب بعضی از این دستورات را با یکدیگر بررسی خواهیم کرد.

گام چهارم: کار با Docker Images

کانتینرهای داکر از Docker Images ساخته شده‌اند. Docker Image فایلی است که برای اجرای کد در کانتینر داکر استفاده می‌شود و به‌عنوان مجموعه‌ای از دستورالعمل‌ها برای ساخت کانتینرهای داکر عمل می‌کند. به‌طور پیش‌فرض، داکر این Images را از Docker Hub پول (Pull) می‌کند؛ داکر هاب یک رجیستری Docker است که توسط کمپانی Docker مدیریت می‌شود. هرکسی می‌تواند Docker Images خود را در Docker Hub میزبانی کند؛ بنابراین اکثر اپلکیشین‌ها و توزیع‌های لینوکس که به آن نیاز دارید، Images را آنجا میزبانی می‌کنند.

با تایپ عبارت زیر می‌توانید بررسی کنید که آیا به Images از Docker Hub دسترسی دارید و آن‌ها را می‌توانید دانلود کنید یا خیر:

docker run hello-world

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

Output

Unable to find image 'hello-world:latest' locally

latest: Pulling from library/hello-world

2db29710123e: Pull complete

Digest: sha256:bfea6278a0a267fad2634554f4f0c6f31981eea41c553fdf5a83e95a41d40c38

Status: Downloaded newer image for hello-world:latest

Hello from Docker!

This message shows that your installation appears to be working correctly.

…

داکر در ابتدا توانایی یافتن hello-world image را به‌صورت محلی ندارد؛ بنابراین Image را از Docker Hub (مخزن پیش‌فرض) دانلود می‌کند. بعد از دانلود Image، داکر یک کانتینر از Image و اپلیکیشنی که درون آن اجرا می‌شود، ایجاد کرده و پیام را نمایش می‌دهد.

با استفاده از دستور docker همراه با جست‌وجوی زیردستور (Subcommand) می‌توانید برای Images موجود در داکر هاب جست‌وجو کنید. به‌عنوان مثال، برای جست‌وجوی Image اوبونتو عبارت زیر را تایپ کنید:

docker search ubuntu

این اسکریپت در Docker Hub خزش (Crawl) می‌کند و فهرستی از همه Imageهایی که نام آن‌ها با رشته جست‌وجو مطابقت دارد را برمی‌گرداند. در این حالت، یک خروجی مشابه زیر دریافت خواهید کرد:

Output

NAME                             DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED

ubuntu                           Ubuntu is a Debian-based Linux operating sys…   14048     [OK]

websphere-liberty                WebSphere Liberty multi-architecture images …   283       [OK]

ubuntu-upstart                   DEPRECATED, as is Upstart (find other proces…   112       [OK]

neurodebian                      NeuroDebian provides neuroscience research s…   88        [OK]

open-liberty                     Open Liberty multi-architecture images based…   51        [OK]

...

کلمه OK در ستون OFFICIAL نشان می‌دهد که Image توسط شرکت سازنده پروژه داکر ساخته و پشتیبانی می‌شود. هنگامی که Image مورد نظرتان را شناسایی کردید، شما می‌توانید آن را با استفاده از زیردستور pull در کامپیوتر خود دانلود کنید. دستور زیر را برای دانلود Image رسمی ubuntu در کامپیوتر خود اجرا کنید:

docker pull ubuntu

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

Output

Using default tag: latest

latest: Pulling from library/ubuntu

e0b25ef51634: Pull complete

Digest: sha256:9101220a875cee98b016668342c489ff0674f247f6ca20dfc91b91c0f28581ae

Status: Downloaded newer image for ubuntu:latest

docker.io/library/ubuntu:latest

بعد از دانلود Image، می‌توانید با استفاده از Image دانلودشده با زیردستور run کانتینر را اجرا کنید. همان‌طور که در مثال hello-world مشاهده می‌کنید، اگر هنگام اجرای docker با زیردستور run، هیچ Image دانلود نشده باشد، کلاینت داکر ابتدا Image را دانلود کرده و سپس با استفاده از آن یک کانتینر را اجرا می‌کند.

برای دیدن Imageهایی که در کامپیوترتان دانلود کرده‌اید، عبارت زیر را تایپ کنید:

 docker images

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

Output

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE

ubuntu              latest              1d622ef86b13        3 weeks ago         73.9MB

hello-world         latest              bf756fb1ae65        4 months ago        13.3kB

همان‌طور که در ادامه این مقاله خواهید دید، Imageهایی که برای اجرای کانتینرها استفاده می‌کنید قابل تغییر هستند و می‌توانند برای تولید Images جدید استفاده شوند. در گام بعدی نحوه اجرای کانتینرها را با جزئیات بیشتری بررسی خواهیم کرد:

گام پنجم: اجرای یک کانتینر Docker

کانتینر hello-world که در مرحله قبل اجرا کردیم، نمونه‌ای از کانتینری است که بعد از ارسال یک پیام آزمایشی اجرا و خارج می‌شود. کانتینرها می‌توانند مفیدتر و تعاملی باشند. به‌عنوان مثال، اجازه بدهید که یک کانتینر را با استفاده از آخرین Image اوبونتو اجرا کنیم. ترکیب سوئیچ‌های i- و t- به شما امکان دسترسی تعاملی shell را در کانتینر می‌دهد:

docker run -it ubuntu

خط فرمان شما باید تغییر کند تا این واقعیت منعکس شود که اکنون در حال کار داخل کانتینر هستید و خروجی باید به شکل زیر باشد:

Output

root@d9b100f2f636:/#

به شناسه کانتینر در خط فرمان توجه کنید که در این مثال d9b100f2f636 است. برای حذف آن شما به ID کانتینر برای شناسایی نیاز دارید. اکنون می‌توانید هر دستوری را داخل کانتینر اجرا کنید. به‌عنوان مثال، اجازه بدهید دیتابیس پکیج داخل کانتینر را به‌روزرسانی کنیم. شما به پیشوند (Prefix) هیچ دستوری با sudo نیاز ندارید؛ زیرا به‌عنوان کاربر روت داخل کانتینر عمل می‌کنید:

root@d9b100f2f636:/# apt update

سپس هر برنامه‌ای را می‌توانید در آن نصب کنید. به‌عنوان مثال، با دستور زیر می‌توانید Node.js را نصب کنید:

root@d9b100f2f636:/# apt install nodejs

با این کار Node.js از مخزن رسمی اوبونتو در کانتینر نصب خواهد شد. بعد از اتمام نصب، تایید کنید که Node.js نصب شده است:

root@d9b100f2f636:/# node -v

در نتیجه شماره نسخه در ترمینال شما نمایش داده خواهد شد:

Output

v12.22.9

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

گام ششم: مدیریت کانتینرهای داکر

بعد از اینکه مدتی از داکر استفاده کردید، کانتینرهای فعال (در حال اجرا) و غیرفعال متعددی در کامپیوتر خود خواهید داشت. برای مشاهده کانتینرهای فعال از دستور زیر استفاده کنید:

docker ps

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

Output

CONTAINER ID        IMAGE               COMMAND             CREATED

در آموزش نصب داکر روی اوبونتو شما دو کانتینر را راه‌اندازی کردید؛ یکی از hello-world Image و دیگری از Ubuntu Image. این کانتینرها هرچند در سیستم شما وجود دارند، اما دیگر در حال اجرا نیستند. برای مشاهده همه کانتینرهای فعال و غیرفعال docker ps را با سوئیچ a- اجرا کنید:

docker ps -a

نتیجه را به شکل زیر مشاهده خواهید کرد:

Output

CONTAINER ID   IMAGE         COMMAND   CREATED         STATUS                     PORTS     NAMES

1c08a7a0d0e4   ubuntu        "bash"     About a minute ago   Exited (0) 7 seconds ago             dazzling_taussig

587000e49d53   hello-world   "/hello"   5 minutes ago        Exited (0) 5 minutes ago             adoring_kowalevski

برای مشاهده آخرین کانتینر ایجادشده سوئیچ l- را اجرا کنید:

docker ps -l

خروجی این دستور زیر به شکل زیر نمایش داده خواهد شد:

Output

CONTAINER ID   IMAGE     COMMAND   CREATED         STATUS                     PORTS     NAMES

1c08a7a0d0e4   ubuntu    "bash"    3 minutes ago   Exited (0) 2 minutes ago             dazzling_taussig

برای راه‌اندازی یک کانتینر متوقف‌شده، از docker start استفاده کنید و در ادامه ID کانتینر یا نام کانتینر را بنویسید. به‌عنوان مثال:

docker start 1c08a7a0d0e4

کانتینر مورد نظر شروع به کار خواهد کرد و شما می‌توانید با docker ps وضعیت آن را به شکل زیر ببینید:

Output

CONTAINER ID   IMAGE     COMMAND   CREATED         STATUS         PORTS     NAMES

1c08a7a0d0e4   ubuntu    "bash"    6 minutes ago   Up 8 seconds             dazzling_taussig

برای متوقف کردن کانتینر نیز می‌توانید از docker stop به همراه ID یا نام کانتینر استفاده کنید. در وضعیت کانتینر نام آن (dazzling_taussig) را مشاهده کردیم که برای متوقف کردن آن باید عبارت زیر را تایپ کنید:

docker stop dazzling_taussig

اگر دیگر قصد استفاده از یک کانتینر را ندارید، با استفاده از دستور docker rm آن را حذف کنید. برای حذف کامل یک کانتینر بعد از این دستور باید نام یا ID کانتینر را بنویسید. از دستور docker ps -a نیز برای پیدا کردن نام یا ID کانتینر مربوط به hello-world Image یا حذف آن استفاده کنید.

docker rm adoring_kowalevski

برای راه‌اندازی یک کانتینر جدید و اختصاص نام به آن از سوئیچ name– (دو عدد دش) استفاده کنید. همچنین سوئیچ rm– (دو عدد دش) برای ایجاد کانتینری به کار می‌رود که بعد از توقف، خود را حذف می‌کند. برای کسب اطلاعات بیشتر درباره انواع گزینه‌ها (options) از دستور docker run help کمک بگیرید.

گام هفتم: ایجاد تغییرات در یک کانتینر و تبدیل آن به Image

در گام بعدی نصب داکر روی ubuntu قرار است به آموزش ایجاد تغییرات در Docker images بپردازیم. بعد از راه‌اندازی یک Docker image می‌توانید دقیقا مانند یک ماشین مجازی آن را ایجاد، ویرایش و حذف کنید. تغییرات ایجادشده فقط روی همان کانتینر اعمال خواهد شد. شما می‌توانید آن را شروع و متوقف کنید، اما با استفاده از دستور docker rm تغییرات به‌طور کلی از بین خواهد رفت.

در این گام به شما آموزش می‌دهیم که چگونه وضعیت یک کانتینر را به‌عنوان یک Docker image جدید ذخیره کنید. بعد از نصب Node.js داخل کانتینر اوبونتو، شما حالا یک کانتینر در حال اجرای یک Image دارید؛ اما کانتینر از Image که شما برای ایجاد آن استفاده کرده‌اید، متفاوت است. بااین‌حال ممکن است بخواهید از کانتینر Node.js به‌عنوان مبنایی برای Imageهای جدید مجدد استفاده کنید.

با استفاده از دستور زیر تغییرات را روی یک Docker image جدید انجام دهید:

docker commit -m "What you did to the image" -a "Author Name" container_id repository/new_image_name

سوئیچ m- برای پیغام Commit است که به شما و دیگران کمک می‌کند تا بدانید چه تغییراتی ایجاد کرده‌اید، درحالی‌که a- برای مشخص کردن نویسنده (author) استفاده می‌شود. Container_id همان شناسه‌ای است که در گام‌های قبلی نیز به آن اشاره شد. Repository یا مخزن معمولا همان نام کاربری Docker Hub است، مگر اینکه مخزن‌های دیگری روی داکر هاب ایجاد کرده باشید.

به‌عنوان مثال، برای کاربر sammy با ID کانتینر d9b100f2f636 دستور به شکل زیر خواهد بود:

docker commit -m "added Node.js" -a "sammy" d9b100f2f636 sammy/ubuntu-nodejs

وقتی که شما یک Image را commit می‌کنید، Image جدید به‌صورت محلی در کامپیوترتان ذخیره می‌شود. در ادامه آموزش نصب داکر روی اوبونتو 22.04 خواهید آموخت که چگونه یک Image را می‌توان در یک رجیستری داکر مانند Docker Hub پوش (Push) کرد تا دیگران هم به آن دسترسی داشته باشند.

با فهرست کردن مجدد Docker Images، هم Image جدید و هم Image قبلی آن نشان داده خواهد شد:

docker images

خروجی دستور بالا به شکل زیر نمایش داده می‌شود:

Output

REPOSITORY               TAG                 IMAGE ID            CREATED             SIZE

sammy/ubuntu-nodejs   latest              7c1f35226ca6        7 seconds ago       179MB

…

در مثال بالا، ubuntu-nodejs یک Image جدید است که از ubuntu image موجود در داکر هاب گرفته شده است. تفاوت اندازه، تغییراتی که به وجود آمده است را نشان می‌دهد. در این مثال، تغییر اعمال‌شده نصب NodeJS بود. بنابراین سری بعدی که به اجرای کانتینر با استفاده از ubuntu با NodeJS از پیش نصب شده نیاز داشتید، شما می‌توانید از Imageجدید استفاده کنید.

همچنین می‌توانید Imageهایی از یک Dockerfile بسازید که به شما اجازه نصب نرم‌افزار در یک Image جدید به‌صورت خودکار را می‌دهد. بااین‌حال این آموزش از حوصله این بلاگ خارج است.

گام هشتم: Push (ارسال) Docker Image به مخزن داکر

بعد از ایجاد یک Image حتما می‌خواهید آن را با بعضی از دوستان خود یا کل افراد در داکر هاب یا سایر رجیستری‌های داکر که به آن‌ها دسترسی دارید، به اشتراک بگذارید. برای push کردن یک Image به داکر هاب یا هر رجیستری داکر دیگر باید یک حساب کاربری ایجاد کنید و سپس با دستور زیر وارد داکر هاب شوید:

docker login -u docker-registry-username

سپس از شما خواسته می‌شود تا با استفاده از رمز عبور داکر هاب خود به احراز هویت بپردازید. اگر رمز عبورتان صحیح بود، احراز هویت با موفقیت انجام خواهد شد.

نکته: اگر نام کاربری رجیستری داکر شما با نام کاربری محلی مورد استفاده هنگام ایجاد Image متفاوت است، باید Image خود را با نام کاربری رجیستری خود تگ کنید. برای این کار از دستور زیر می‌توانید استفاده کنید:

docker tag sammy/ubuntu-nodejs docker-registry-username/ubuntu-nodejs

در ادامه با دستور زیر Image خود را پوش کنید:

docker push docker-registry-username/docker-image-name

برای پوش کردن ubuntu-nodejs image به مخزن sammy دستور به شکل زیر خواهد بود:

docker push sammy/ubuntu-nodejs

این فرایند ممکن است به‌دلیل آپلود Images کمی طول بکشد، اما بعد از تکمیل، خروجی به شکل زیر خواهد بود:

Output

The push refers to a repository [docker.io/sammy/ubuntu-nodejs]

e3fbbfb44187: Pushed

5f70bf18a086: Pushed

a3b5c80a4eba: Pushed

7f18b442972b: Pushed

3ce512daaf78: Pushed

7aae4540b42d: Pushed

…

بعد از پوش شدن یک Image در یک رجیستری، Image باید مانند عکس زیر در داشبورد اکانت شما لیست شود:

اگر هنگام پوش کردن Image با خطای زیر مواجه شدید، احتمالا وارد سیستم نشده‌اید:

Output

The push refers to a repository [docker.io/sammy/ubuntu-nodejs]

e3fbbfb44187: Preparing

5f70bf18a086: Preparing

a3b5c80a4eba: Preparing

7f18b442972b: Preparing

3ce512daaf78: Preparing

7aae4540b42d: Waiting

unauthorized: authentication required

با دستور docker login وارد شوید و دوباره برای پوش کردن Image تلاش کنید.

حالا می‌توانید از docker pull sammy/ubuntu-nodejs برای pull کردن Image به یک ماشین جدید و استفاده از آن برای اجرای یک کانتینر جدید استفاده کنید.

منبع: DigitalOcean

مقالات مرتبط