تغییرات اخیر

در اینجا اطلاعیه‌ها، نسخه‌ها و تغییرات جدید لیارا فهرست می‌شوند.

آموزش نصب و استفاده از Docker بر روی Ubuntu 18.04


۱۶ اسفند ۱۳۹۹

Docker یک پلتفرم نرم‌افزاری است که فرایند اجرا، مدیریت و استقرار برنامه‌های توسعه داده شده را برای برنامه‌نویسان ساده‌تر می‌کند. این پلتفرم با استفاده از مفهومی به نام Docker Container این امکان را فراهم می‌سازد که هر برنامه به صورت کاملاً ایزوله و مستقل از سایر برنامه‌ها، بر روی یک میزبان مشترک (Docker Host) اجرا شوند.
Docker Container ها را می‌توان مشابه ماشین‌های مجازی (Virtual Machines) دانست، با این تفاوت که کانتینرها بسیار سبک‌تر، قابل حمل‌تر و وابسته به سیستم‌عامل‌های میزبان هستند و به منابع سخت‌افزاری کمتری نیاز دارند.

در این آموزش از لیارا به نصب Docker Community Edition (CE) در Ubuntu 18.04 خواهیم پرداخت؛ سپس با برخی دستورهای این ابزار آشنا خواهیم شد. با ما تا انتهای این مطلب همراه باشید.

همین حالا به سادگی پروژه‌های داکر خود را در هاست ابری لیارا دیپلوی کنید!
✅ دامنه رایگان ✅ ترافیک نامحدود ✅ هزینه ساعتی
خرید هاست ابری Docker

آنچه در ادامه خواهید خواند:

  • پیش‌ نیازها
  • نصب Docker
  • اجرای دستور های Docker بدون نیاز به Sudo
  • نحوه‌ اجرای دستور های Docker
  • نحوه‌ استفاده از Docker image
  • راه‌ اندازی Docker container
  • مدیریت Docker container
  • commit کردن تغییر های درون container به Docker image
  • push کردن Docker image شخصی‌ سازی شده در Docker Hub
  • سوالات متداول
  • جمع بندی

پیش‌ نیازها

پیش‌نیازهای زیر را برای دنبال کردن ادامه این آموزش فراهم کنید.

  • یک سرور Ubuntu نسخه‌ی 18.04
  • اگر قصد داشته‌اید تا Docker image شخصی‌سازی شده‎‌ خود را به‌صورت عمومی منتشر کنید. باید یک حساب کاربری در Docker Hub را در اختیار داشته باشید.
آموزش نصب و استفاده از docker بر روی ubuntu 18.04

نصب Docker

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

sudo apt update

سپس پکیج‌هایی را نصب کنید که امکان استفاده از apt در حالت HTTPS را فراهم می‌کنند.

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

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

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

و پس از آن بایستی ریپازیتوری Docker را به package source های apt اضافه ‌کنید.

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

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

sudo apt update

حال بایستی apt را ملزم کنید تا از ریپازیتوری رسمی Docker برای نصب این پلتفرم استفاده کند.

apt-cache policy docker-ce

خروجی دستور فوق به شکل زیر است.

docker-ce:
  Installed: (none)
  Candidate: 18.03.1~ce~3-0~ubuntu
  Version table:
     18.03.1~ce~3-0~ubuntu 500
        500 https://download.docker.com/linux/ubuntu bionic/stable amd64 Packages

در نهایت با اجرای دستور زیر، Docker نصب می‌شود.

sudo apt install docker-ce

اکنون که این پلتفرم را نصب کردید باید از فعال بودن فرایند اجرای سرویس Docker در boot سیستم‌عامل اطمینان حاصل کنید. برای این عمل از دستور زیر استفاده کنید.

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 Thu 2018-07-05 15:08:39 UTC; 2min 55s ago
     Docs: https://docs.docker.com
 Main PID: 10096 (dockerd)
    Tasks: 16
   CGroup: /system.slice/docker.service
           ├─10096 /usr/bin/dockerd -H fd://
           └─10113 docker-containerd --config /var/run/docker/containerd/containerd.toml

اجرای دستور های Docker بدون نیاز به Sudo

به‌صورت پیش‌فرض تنها کاربر روت (root) می‌تواند دستور docker را اجرا کند اما این استثنا وجود دارد تا بتوانید یک کاربر جدید حین نصب Docker تعریف کنید. اگر دستور docker را بدون پیشوند sudo اجرا کنید، خروجی زیر را دریافت خواهید کرد.

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

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

sudo usermod -aG docker ${USER}

برای اعمال تغییرات می‌توانید از سرور خارج شده و دوباره وارد آن شوید یا دستور زیر را اجرا کنید.

su - ${USER}

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

id -nG

که خروجی آن به شکل زیر است.

sammy sudo docker

همچنین اگر قصد دارید کاربری را به docker group اضافه کنید که با آن وارد سرور نشده‌اید می‌توانید از دستور زیر استفاده کنید.

sudo usermod -aG docker username

نحوه‌ اجرای دستور های Docker

سینتکس دستور docker به شکل زیر است.

docker [option] [command] [arguments]

پس از اجرای دستور docker در Terminal، خروجی زیر به شما نمایش داده می‌شود.

Options:
      --config string      Location of client config files (default
                           "C:\\Users\\Genius\\.docker")
  -c, --context string     Name of the context to use to connect to the
                           daemon (overrides DOCKER_HOST env var and
                           default context set with "docker context use")
  -D, --debug              Enable debug mode
  -H, --host list          Daemon socket(s) to connect to
  -l, --log-level string   Set the logging level
                           ("debug"|"info"|"warn"|"error"|"fatal")
                           (default "info")
      --tls                Use TLS; implied by --tlsverify
      --tlscacert string   Trust certs signed only by this CA (default
                           "C:\\Users\\Genius\\.docker\\ca.pem")
      --tlscert string     Path to TLS certificate file (default
                           "C:\\Users\\Genius\\.docker\\cert.pem")
      --tlskey string      Path to TLS key file (default
                           "C:\\Users\\Genius\\.docker\\key.pem")
      --tlsverify          Use TLS and verify the remote
  -v, --version            Print version information and quit

Management Commands:
  app*        Docker App (Docker Inc., v0.9.1-beta3)
  builder     Manage builds
  buildx*     Build with BuildKit (Docker Inc., v0.5.1-docker)
  config      Manage Docker configs
  container   Manage containers
  context     Manage contexts
  image       Manage images
  manifest    Manage Docker image manifests and manifest lists
  network     Manage networks
  node        Manage Swarm nodes
  plugin      Manage plugins
  scan*       Docker Scan (Docker Inc., v0.5.0)
  secret      Manage Docker secrets
  service     Manage services
  stack       Manage Docker stacks
  swarm       Manage Swarm
  system      Manage Docker
  trust       Manage trust on Docker images
  volume      Manage volumes

Commands:
  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

برای مشاهده‌ی راهنمای subcommand می‌توانید به روش زیر عمل کنید.

docker docker-subcommand --help

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

docker info
نحوه‌ استفاده از Docker image

نحوه‌ استفاده از Docker image

Docker container ها با استفاده از Docker image ها ساخته می‌شوند و Docker این Docker image ها را از Docker Hub بارگیری می‌کند. البته این قابلیت وجود دارد تا هر کاربری بتواند ایمیج‌های (image) شخصی‌سازی شده خودش را در این ریپازیتوری آنلاین میزبانی کند؛ بنابراین اکثر برنامه‌ها و توزیع‌های Linux محبوب را می‌توانید در این ریپازیتوری پیدا کنید.

برای اطمینان از برقراری اتصال به Docker Hub و دسترسی به ایمیج‌ها، دستور زیر را اجرا کنید.

docker run hello-world

اگر دستور فوق با موفقیت اجرا شود، خروجی زیر را مشاهده خواهید کرد.

Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
9bb5a5d4561a: Pull complete
Digest: sha256:3e1764d0f546ceac4565547df2ac4907fe46f007ea229fd7ef2718514bcec35d
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.
...

همان‌طور که مشاهده می‌کنید، Docker در مرحله اول وجود ایمیج‌های مورد نظر یعنی hello-world را بر روی Docker Host فعلی بررسی می‌کند. اگر وجود نداشتند، سعی می‌کند در مرحله‌ بعد آن را در Docker Hub جستجو کند و اگر ایمیج‌ها موجود بودند، آن‌ها را بر روی Docker Host فعلی، دانلود و اجرا خواهد کرد.

با اجرای دستور زیر می‌توانید ایمیج‌های مورد نظر خود را در Docker Hub جستجو کنید.

docker search ubuntu

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

NAME                                                      DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
ubuntu                                                    Ubuntu is a Debian-based Linux operating sys…   11859     [OK]
dorowu/ubuntu-desktop-lxde-vnc                            Docker image to provide HTML5 VNC interface …   497                  [OK]
websphere-liberty                                         WebSphere Liberty multi-architecture images …   268       [OK]
rastasheep/ubuntu-sshd                                    Dockerized SSH service, built on top of offi…   250                  [OK]
consol/ubuntu-xfce-vnc                                    Ubuntu container with "headless" VNC session…   232                  [OK]
ubuntu-upstart                                            Upstart is an event-based replacement for th…   110       [OK]
neurodebian                                               NeuroDebian provides neuroscience research s…   80        [OK]
1and1internet/ubuntu-16-nginx-php-phpmyadmin-mysql-5      ubuntu-16-nginx-php-phpmyadmin-mysql-5          50                   [OK]
ubuntu-debootstrap                                        debootstrap --variant=minbase --components=m…   44        [OK]
open-liberty                                              Open Liberty multi-architecture images based…   42        [OK]
i386/ubuntu                                               Ubuntu is a Debian-based Linux operating sys…   24
nuagebec/ubuntu                                           Simple always updated Ubuntu docker images w…   24                   [OK]
1and1internet/ubuntu-16-apache-php-5.6                    ubuntu-16-apache-php-5.6                        14                   [OK]
1and1internet/ubuntu-16-apache-php-7.0                    ubuntu-16-apache-php-7.0                        13                   [OK]
1and1internet/ubuntu-16-nginx-php-phpmyadmin-mariadb-10   ubuntu-16-nginx-php-phpmyadmin-mariadb-10       11                   [OK]
1and1internet/ubuntu-16-nginx-php-5.6-wordpress-4         ubuntu-16-nginx-php-5.6-wordpress-4             8                    [OK]
1and1internet/ubuntu-16-nginx-php-5.6                     ubuntu-16-nginx-php-5.6                         8                    [OK]
1and1internet/ubuntu-16-apache-php-7.1                    ubuntu-16-apache-php-7.1                        6                    [OK]
1and1internet/ubuntu-16-nginx-php-7.0                     ubuntu-16-nginx-php-7.0                         4                    [OK]
pivotaldata/ubuntu                                        A quick freshening-up of the base Ubuntu doc…   4
pivotaldata/ubuntu16.04-build                             Ubuntu 16.04 image for GPDB compilation         2
smartentry/ubuntu                                         ubuntu with smartentry                          1                    [OK]
1and1internet/ubuntu-16-php-7.1                           ubuntu-16-php-7.1                               1                    [OK]
pivotaldata/ubuntu-gpdb-dev                               Ubuntu images for GPDB development              1
pivotaldata/ubuntu16.04-test                              Ubuntu 16.04 image for GPDB testing             0

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

به‌عنوان مثال با اجرای دستور زیر، ایمیج‌های رسمی اوبونتو بر روی Docket Host فعلی شما دانلود می‌شود.

docker pull ubuntu

خروجی دستور فوق به شکل زیر است.

Using default tag: latest
latest: Pulling from library/ubuntu
6b98dfc16071: Pull complete
4001a1209541: Pull complete
6319fc68c576: Pull complete
b24603670dc3: Pull complete
97f170c87c6f: Pull complete
Digest: sha256:5f4bdc3467537cbbe563e80db2c3ec95d548a9145d64453b06939c4592d67b6d
Status: Downloaded newer image for ubuntu:lates

پس از تکمیل دانلود ایمیج‌های مورد نظرتان می‌توانید یک Docker container را با استفاده از ایمیج بارگیری شده با دستور docker run راه‌اندازی کنید.

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

docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              latest              113a43faa138        4 weeks ago         81.2MB
hello-world         latest              e38bc07ac18e        2 months ago        1.85kB

راه‌ اندازی Docker container

در بخش قبل با استفاده از hello-world image یک container را راه‌اندازی کرد‌ه‌اید که پیامی آزمایشی را چاپ می‌کرد اما Docker containerها می‌توانند بسیار مفیدتر از این موضوع باشد. آن‌ها شبیه virtual machine هایی هستند که به منابع سخت‌افزاری کم‌تری نیاز دارند.

به‌عنوان مثال یک container را با استفاده از آخرین نسخه‌ ubuntu image راه‌اندازی کنید. سوئیچ‌های -i و -t در کنار هم یک interactive tty در اختیار شما قرار می‌دهند که به کمک آن می‌توانید با container خود تعامل داشته باشید.

docker run -it ubuntu

پس از اجرای دستور فوق، تغییرهایی در ظاهر Terminal شما ایجاد می‌شود.

root@d9b100f2f636:/#

حال با این interactive tty می‌توانید هر دستوری را درون container خود اجرا کنید. به‌عنوان مثال پکیج‌های فعلی را آپدیت کنید، “توجه داشته باشید که نیازی به استفاده از پیشوند sudo نیست.”

root@d9b100f2f636:/# apt update

همچنین می‌توانید هر برنامه‌ای که دوست دارید را نصب کنید.

root@d9b100f2f636:/# apt install nodejs

برای خروج از این interactive tty از دستور exit استفاده کنید.

مدیریت Docker container

با گذشت زمان و هنگام کار با Docker، ممکن است چندین container فعال روی سیستم شما اجرا شود. برای مشاهده فهرست این container ها، می‌توانید از دستور زیر استفاده کنید.

docker ps

که خروجی آن به شکل زیر است.

CONTAINER ID        IMAGE               COMMAND             CREATED

پیش‌تر دو container با استفاده از ایمیج‌های ubuntu و hello-world ایجاد کرده‌اید. این container ها متوقف شده‌اند اما همچنان فضای دیسک شما را اشغال می‌کنند. برای مشاهده فهرست کامل تمام container ها، چه فعال و چه غیرفعال، می‌توانید از دستور docker ps همراه با سوئیچ -a استفاده کنید.

docker ps -a

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

d9b100f2f636        ubuntu              "/bin/bash"         About an hour ago   Exited (0) 8 minutes ago                           sharp_volhard
01c950718166        hello-world         "/hello"            About an hour ago   Exited (0) About an hour ago                       festive_williams

برای مشاهده‌ جدیدترین container هایی که ایجاد کرده‌اید می‌توانید از سوئیچ -l استفاده کنید.

docker ps -l
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
d9b100f2f636        ubuntu              "/bin/bash"         About an hour ago   Exited (0) 10 minutes ago                       sharp_volhard

برای راه‌اندازی مجدد یک container متوقف شده می‌توانید از دستور docker start استفاده کنید.

docker start d9b100f2f636

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

حال برای متوقف کردن این container می‌توانید از دستور docker stop استفاده کنید.

docker stop sharp_volhard

برای حذف کردن یک یا چند container می‌توانید از دستور docker rm استفاده کنید.

docker rm festive_williams

نام container ها به‌صورت تصادفی انتخاب می‌شوند اما شما می‌توانید با استفاده از سوئیچ --name نام دلخواه خود را در زمان راه‌اندازی آن‌ها انتخاب کنید.

commit کردن تغییر های درون container به Docker image

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

به‌عنوان مثال، پیش‌تر در کانتینر اوبونتو برنامه Node.js را نصب کرده‌اید. بنابراین Node.js در همان کانتینر قابل استفاده است، اما اگر یک کانتینر جدید بر پایه همان ایمیج ubuntu ایجاد کنید، باید Node.js را مجدداً نصب کنید تا در کانتینر جدید در دسترس باشد.

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

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

پس از اجرای موفقیت آمیز دستور فوق یک Docker image جدید در Docker Host فعلی ذخیره می‌شود که در مرحله‌ بعد به شما آموزش خواهیم داد تا چگونه این ایمیج‌های جدید را در Docker Hub میزبانی کنید.

حال برای مشاهده‌ تمام ایمیج‌های موجود در Docker Host فعلی می‌توانید دستور زیر را اجرا کنید.

docker images
REPOSITORY               TAG                 IMAGE ID            CREATED             SIZE
sammy/ubuntu-nodejs   latest              7c1f35226ca6        7 seconds ago       179MB
ubuntu                   latest              113a43faa138        4 weeks ago         81.2MB
hello-world              latest              e38bc07ac18e        2 months ago        1.85kB

push کردن Docker image شخصی‌ سازی شده در Docker Hub

ممکن است بخواهید ایمیج‌های شخصی‌سازی شده‌ی خودتان را با دوستان خود به‌اشتراک بگذارید یا حتی آن‌ها را برای استفاده‌ی عموم در Docker Hub منتشر کنید. در وهله‌ی اول برای اشتراک image در Docker Hub یا هر ریپازیتوری عمومی Docker به یک حساب کاربری نیاز دارید.

برای push کردن ایمیج‌های خود به Docker Hub بایستی وارد حساب کاربری‌تان شوید.

docker login -u docker-registry-username

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

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

سپس می‌توانید برای push کردن ایمیج‌های خود، دستور docker push را به‌صورت زیر اجرا کنید.

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

به‌عنوان مثال برای push کردن یک ایمیج‌های با نام ubuntu-nodejs به ریپازیتوری sammy بایستی دستور زیر را اجرا کنید.

docker push sammy/ubuntu-nodejs
The push refers to a repository [docker.io/sammy/ubuntu-nodejs]
e3fbbfb44187: Pushed
5f70bf18a086: Pushed
a3b5c80a4eba: Pushed
7f18b442972b: Pushed
3ce512daaf78: Pushed
7aae4540b42d: Pushed

...

پس از push کردن ایمیج‌های جدید می‌توانید آن را در حساب کاربری Docker Hub خود مشاهده کنید و دوستان شما با اجرا دستور docker pull sammy/ubuntu-nodejs می‌توانند این ایمیج‌های را دریافت کنند.

سوالات متداول

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

Middleware در Express.js چیست و چرا مهم است؟

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

چگونه می‌ توان تغییرات یک کانتینر Docker را به عنوان یک ایمیج جدید ذخیره کرد؟

با استفاده از دستور docker commit و مشخص کردن شناسه کانتینر، پیام تغییرات و نام ایمیج جدید می‌توانید وضعیت فعلی کانتینر را ذخیره کنید.

تفاوت اصلی بین کانتینر و ماشین مجازی چیست؟

  • کانتینرها سبک‌تر و سریع‌تر هستند
  • منابع کمتری مصرف می‌کنند
  • وابسته به سیستم‌عامل میزبان هستند

در حالی که ماشین‌های مجازی هر کدام سیستم‌عامل کامل خود را اجرا می‌کنند.

چرا بعد از حذف یک کانتینر تغییرات آن از بین می‌ رود؟

چون تغییرات فقط در همان کانتینر اعمال می‌شوند و کانتینرها به به‌صورت پیش‌فرض حالت موقتی دارند مگر آنکه تغییرات به یک ایمیج جدید منتقل شوند.

جمع بندی

در این مقاله با مفهوم Middleware در فریم‌ورک Express.js آشنا شده‌ایم و اهمیت آن را در توسعه برنامه‌های وب حرفه‌ای و مقیاس‌پذیر بررسی کرده‌ایم. همچنین با مفاهیم پایه‌ای Docker و نحوه مدیریت کانتینرها آشنا شدیم و یاد گرفتیم چگونه تغییرات کانتینرهای فعال را به عنوان یک ایمیج جدید ذخیره کنیم تا در پروژه‌های آینده بتوانیم از آن‌ها استفاده کنیم.

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

منبع: https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-18-04

به اشتراک بگذارید

برچسب‌ها: