آموزش کار با Image و کانتینر های Docker
در Docker معرفی و آموزش نصب و راه اندازی روی Ubuntu گفتیم که Docker (داکر) یک پلتفرم متن باز برای ساخت ، توسعه و راه اندازی اپلیکیشن ها می باشد.توسط داکر می توان انواع اقسام اپلیکیشن ها را مانند ماشین های مجازی در یک محیط ایزوله با قابلیت قابل حمل بودن (portable) و با منابع کمتر راه اندازی کرد و به نصب داکر روی سیستم عامل اوبنتو پرداختیم حال در این آموزش می خواهیم به نحوه ی استفاده از Image ها و کانتینر های Docker بپردازیم.
خب اول از همه بگیم کانتینر چیست ؟ تصویر زیر را ببینید :
همانطور که می بینید کانتینر ها از یکدیگر ایزوله هستند و هر کدام سیستم عامل یا نرم افزار های خاص خود را دارند (مانند ماشین های مجازی) ، پس در اصل داکر نرم افزاری است که کانتینر ها را ایجاد و کنترل می کند.
حال برای ساخت یک کانتینر به یک ایمیج نیاز داریم ، برای مثال به سیستم عاملی مانند ubuntu نیاز داریم که می توان از ایمیج آماده آن که در مخزن داکر موجود می باشد استفاده کرد.
با ما همراه باشید تا به استفاده از Image های Docker بپردازیم.
برای چک کردن دسترسی به مخزن ایمیج های داکر دستور زیر را اجرا کنید :
1 | docker run hello-world |
hello-world یک ایمیج ساده می باشد که جهت تست کارکرد داکر به کار می رود ، خروجی :
1 2 3 4 5 6 7 8 9 | 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. ... |
همان طور که از خروجی مشخص است ، داکر ایمیج hello-world رو در داخل سیستم پیدا نکرده ، و در نهایت آن را از مخزن داکر دانلود کرده و اجرا کرده و این عمل دسترسی به مخزن و کارکرد درست داکر را نشان می دهد.
برای جست و جو در مخزن داکر از دستور زیر می توان استفاده کرد :
1 | docker search ubuntu |
در دستور بالا ما ایمیج های ubuntu رو جست و جو کردیم ، که لیست ایمیج ها را برای ما در خروجی نشان می دهد :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | NAME DESCRIPTION STARS OFFICIAL AUTOMATED ubuntu Ubuntu is a Debian-based Linux operating sys… 7917 [OK] dorowu/ubuntu-desktop-lxde-vnc Ubuntu with openssh-server and NoVNC 193 [OK] rastasheep/ubuntu-sshd Dockerized SSH service, built on top of offi… 156 [OK] ansible/ubuntu14.04-ansible Ubuntu 14.04 LTS with ansible 93 [OK] ubuntu-upstart Upstart is an event-based replacement for th… 87 [OK] neurodebian NeuroDebian provides neuroscience research s… 50 [OK] ubuntu-debootstrap debootstrap --variant=minbase --components=m… 38 [OK] 1and1internet/ubuntu-16-nginx-php-phpmyadmin-mysql-5 ubuntu-16-nginx-php-phpmyadmin-mysql-5 36 [OK] nuagebec/ubuntu Simple always updated Ubuntu docker images w… 23 [OK] tutum/ubuntu Simple Ubuntu docker images with SSH access 18 i386/ubuntu Ubuntu is a Debian-based Linux operating sys… 13 ppc64le/ubuntu Ubuntu is a Debian-based Linux operating sys… 12 1and1internet/ubuntu-16-apache-php-7.0 ubuntu-16-apache-php-7.0 10 [OK] 1and1internet/ubuntu-16-nginx-php-phpmyadmin-mariadb-10 ubuntu-16-nginx-php-phpmyadmin-mariadb-10 6 [OK] eclipse/ubuntu_jdk8 Ubuntu, JDK8, Maven 3, git, curl, nmap, mc, … 6 [OK] codenvy/ubuntu_jdk8 Ubuntu, JDK8, Maven 3, git, curl, nmap, mc, … 4 [OK] darksheer/ubuntu Base Ubuntu Image -- Updated hourly 4 [OK] 1and1internet/ubuntu-16-apache ubuntu-16-apache 3 [OK] 1and1internet/ubuntu-16-nginx-php-5.6-wordpress-4 ubuntu-16-nginx-php-5.6-wordpress-4 3 [OK] 1and1internet/ubuntu-16-sshd ubuntu-16-sshd 1 [OK] pivotaldata/ubuntu A quick freshening-up of the base Ubuntu doc… 1 1and1internet/ubuntu-16-healthcheck ubuntu-16-healthcheck 0 [OK] pivotaldata/ubuntu-gpdb-dev Ubuntu images for GPDB development 0 smartentry/ubuntu ubuntu with smartentry 0 [OK] ossobv/ubuntu ... |
در ستون Official ، اگر در ردیف ایمیجی کلمه ی OK نوشته شده باشد به معنی آن است که این ایمیج توسط شرکت آن پروژه پشتیبانی می شود.
بعد از این که ایمیج مورد نظر خود را پیدا کردیم با دستور زیر آن را دانلود می کنیم :
1 | docker pull ubuntu |
که در این آموزش ما ایمیج ubuntu رو در نظر گرفتیم :
خروجی :
1 2 3 4 5 6 7 8 9 | 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:latest |
بعد از این که ایمیج مورد نظر دانلود شد (ubuntu) ، می توان از آن ایمیج برای ساخت کانتینر استفاده کرد که با دستور زیر قابل انجام می باشد :
1 | docker run -it ubuntu |
آپشن های i و t در این دستور ما را به شل کانتینری که ساختیم و اجرا کردیم می برد و محیط دستوری شما به شکل زیر تغییر می کند :
1 | root@d9b100f2f636:/# |
حال می توانیم دستورات مربوط به اوبنتو را اجرا کنیم ، برای مثال :
1 | root@d9b100f2f636:/ apt update |
برای مشاهده ی ایمیج های دانلود شده از دستور زیر استفاده می کنیم :
1 | docker images |
خروجی :
1 2 3 | REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu latest 113a43faa138 4 weeks ago 81.2MB hello-world latest e38bc07ac18e 2 months ago 1.85kB |
مشاهده ی کانتینر ها :
1 | docker ps -a |
خروجی :
1 2 | 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 |
[line]
تیم فنی آلما هاست، در تمام ایام سال به صورت 24 ساعته در خدمت شما هستند تا برای خرید سرور مجازی، لایسنس امنیتی imunify360 و لایسنس سی پنل اصل شما را یاری کنند و جدیدترین آفر های موجود را برای شما متناسب با نیازتان ارائه کنند. برای دریافت آخرین آفر های ویژه و تخفیف های ما، می توانید از طریق تیکت با ما در ارتباط باشید تا آفر های موجود را بر اساس نیاز شما برایتان ارسال کنیم.
پرتال کاربری آلما هاست ( پاسخگویی 24 ساعته ) : پورتال مشتریان آلما هاست