20 دستور اصلی Docker که باید بدانید

سرور مجازی
20  دستور اصلی Docker که باید بدانید
تاریخ انتشار: 1 سال پیش تعداد بازدید: 2952 دسته بندی: سرور

آیا در Docker تازه کار هستید و نمی‌دانید چگونه کانتینرهای Docker را به طور موثر مدیریت کنید؟ نگران نباشید، دستورات Docker می تواند به شما در رسیدن به آن کمک کند! Docker  یک پلتفرم محبوب است که به توسعه دهندگان اجازه می‌‎دهد تا اپلیکیشن‌ها، وابستگی‌ها و پیکربندی‌های خود را در کانتینرهایی بسته بندی کرده و به طور یکپارچه در محیط های مختلف اجرا شوند


با استفاده از دستورات Docker، می‌توانید به راحتی کانتینرهای Docker را ایجاد، اجرا، متوقف، حذف و مدیریت کنید. این دستورات می‌توانند به شما کمک کنند فرآیند استقرار و مدیریت برنامه‌های خود را در یک محیط کانتینری خودکار و ساده کنید.

در این مقاله  برخی از متداول‌ترین دستورات Docker را که می‌توانند به شما در مدیریت موثر کانتینرهای Docker کمک می‌کنند را بررسی خواهیم نمود.

  • docker run - این دستور  برای start یک کانتینر جدید Docker از یک image استفاده می شود.
  • docker ps - برای لیست کردن تمام کانتینرهای در حال اجرا Docker استفاده می شود.
  • docker stop - برای stop یک کانتینر در حال اجرا استفاده می شود.
  • docker rm - برای حذف یک کانتینر داکر استفاده می شود.
  • docker images - برای فهرست کردن تمام imageهای داکر که در حال حاضر در سیستم شما در دسترس هستند استفاده می شود.
  • docker pull - برای دانلود image داکر از رجیستری استفاده می شود.
  • docker exec - برای اجرای یک دستور در یک کانتینر در حال اجرا استفاده می شود.
  • docker-compose  - برای مدیریت اپلیکیشن‌های داکر  چند کانتینری (multi-container) استفاده می شود.


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

Docker توسعه را کارآمد و قابل پیش بینی می کند

داکر چیست؟

Docker یک پلتفرم رایگان و متن‌باز است که تجربه ای همه‌جانبه را به توسعه دهندگانی که روی جنبه های مختلف توسعه نرم افزار کار می کنند ارائه می‌دهد. یک پلتفرم کانتینری که به توسعه دهندگان اجازه می‌دهد تا کد را در واحدهای قابل استقرار مختلف به نام کانتینر بسته بندی کنند. Docker Engine نرم افزاری است که بر میزبانی کانتینرها نظارت می‌کند. زیرمجموعه Moby Project، Docker، به توسعه دهندگان کمک می کند تا کانتینرها را روی سرور و ابر بسازند، اجرا و دیپلوی کنند. کانتینر شامل بیلدر ، موتور و ارکستراتور برای ارائه یک برنامه یکپارچه است که در هر محیطی اجرا می شود.

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

Docker توسط توسعه دهندگانی که روی پروژه های فردی کار می کنند ترجیح داده می شود زیرا یک محیط سبک وزن برای تست ارائه می دهد. این دارای هر دو سطح رایگان و پریمیوم است.  Docker در سال 2013 منتشر شد و در Go نوشته شده است.

 

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

 

20 دستور پرکاربرد Docker

در ادامه 20 دستور داکر را فهرست کرده‌ایم تا به شما کمک کند در موتور داکر به طور یکپارچه پیمایش کنید و بیشتر کار خود را انجام دهید:

 

  • Docker version
  • Docker search 
  • Docker pull
  • Docker run 
  • Docker ps
  • Docker stop 
  • Docker restart 
  • Docker kill
  • Docker exec 
  • Docker login
  • Docker commit 
  • Docker push 
  • Docker network 
  • Docker history 
  • Docker rmi 
  • Docker ps -a
  • Docker copy
  • Docker logs   
  • Docker volume 
  • Docker logout
  1. Docker version

معمولا با یافتن نسخه نصب شده docker که روی آن کار می کنیم شروع می کنیم. 
 

parsdev@parsdev:/home/parsdev$ docker --version
Docker version 18.09.6, build 481bc77

  1. Docker search 

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

docker search MySQL

می توانید از وب سایت Docker Hub برای جستجو از طریق گزینه مبتنی بر رابط کاربری گرافیکی استفاده کنید.

 

  1. Docker pull

همانطور که از نام آن پیداست، این دستور یک image خاص را از داکر هاب می کشد. تنها کاری که باید انجام دهید این است که از دستور docker pull به همراه نام image استفاده کنید. در ادامه نمونه‌ای از pull یک ایمیج بدون استفاده از تگ آورده شده است:

 

docker pull --platform Linux/x86_64 MySQL
Here is an example that demonstrates how to pull an Apache HTTP server image from the Docker repository using the tag -
Using default tag: latest
latest: Pulling from library/httpd
f5d23c7fed46: Pull complete
b083c5fd185b: Pull complete
bf5100a89e78: Pull complete
98f47fcaa52f: Pull complete
622a9dd8cfed: Pull complete
Digest: sha256:8bd76c050761610773b484e411612a31f299dbf7273763103edbda82acd73642
Status: Downloaded newer image for httpd: latest
parsdev@parsdev:/home/parsdev$


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

ما می توانیم از دستور -all-tags برای بیرون کشیدن تمام imageها از مخزن برای چندین image استفاده کنیم.

 

  1. Docker run 

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

 

docker run --env MYSQL_ROOT_PASSWORD=my-secret-pw --detach mysql
 

گزینه –detach  کانتینر را اجرا می‌کند و گزینه –env برای تنظیم متغیر اجباری استفاده می‌شود. اگر از گزینه –name استفاده نکنید، داکر به طور تصادفی یک نام به کانتینر اختصاص می دهد.

  1. Docker ps 

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

docker ps --all
 

  1. Docker stop 

دستور docker stop یک کانتینر را با استفاده از نام کانتینر یا شناسه آن متوقف می کند.

 

docker stop h7m52redeecc
 

  1. Docker restart 

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

 

parsdev@parsdev:/home/parsdev$
docker restart h7m52redeecc

  1. Docker kill 

این دستور برای توقف فوری کانتینر با kill کردن اجرای آن استفاده می شود. در حالی که دستور docker stop به خاموش کردن کانتینر در زمان خود کمک می کند، دستور docker kill آن را بلافاصله متوقف می کند. 

parsdev@parsdev:/home/parsdev$
docker kill 09ca6feb6efc
To check whether the container is stopped or killed, use the following command -
parsdev@parsdev:/home/parsdev$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

 

  1. Docker exec 

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

docker exec -it test_db bash
mysql -uroot -pmy-secret-pw
SHOW DATABASES;

شما باید نام یا شناسه کانتینر را ارائه دهید که در این مورد test_db است. گزینه های -i و -t برای دسترسی به حالت تعاملی استفاده می شوند.

  1. Docker login

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

 

parsdev@parsdev:/home/parsdev$ docker login
Login with your Docker ID to push and pull images from Docker Hub. Suppose you don’t have a Docker ID, head over to https://hub.docker.com to create one.
Username: parsdev
Password:
Configure a credential helper to remove this warning. See: https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded

 

  1. Docker commit

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

 

 

parsdev@parsdev:/home/parsdev$
docker commit 09ca6feb6efc parsdev/httpd_image
sha256:d1933506f4c1686ab1a1ec601b1a03a17b41decbc21d8acd893db090a09bb31c
Here, ‘parsdev’ is the username and ‘httpd_image’ is the image name of the edited container. 

 

  1. Docker push 

این دستور به فشار یا آپلود یک image داکر در مخزن یا داکر هاب کمک می کند. 

 

parsdev@parsdev:/home/parsdev$ docker push parsdev/httpd_image
The push refers to the repository [docker.io/parsdev/httpd_image]
734d9104a6a2: Pushed
635721fc6973: Mounted from library/httpd
bea448567d6c: Mounted from library/httpd
bfaa5f9c3b51: Mounted from library/httpd
9d542ac296cc: Mounted from library/httpd
d8a33133e477: Mounted from library/httpd
latest: 
digest: sha256:3904662761df9d76ef04ddfa5cfab764b85e3eedaf10071cfbe2bf77254679ac size: 1574

 

  1. Docker network 

دستور docker networ برای دانستن جزئیات لیست شبکه ها در کلاستر استفاده می شود. 

 

parsdev@parsdev:/home/parsdev$ docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
85083e755f04        bridge              bridge              local
f51d1f2379e0        host                host                local
5e5d9a154c00        none                null                local
Apart from this, you can also use the following docker network commands to manage networks -
Connect  - to connect a container to a network
Disconnect - to disconnect a container from a network
Create  - to create a network
Ls - to list all networks
Inspect - to display detailed information on one or more networks
prune - to remove all unused networks
rm - to remove one or more networks

 

  1. Docker history 

این دستور برای بررسی تاریخچه یک image داکر استفاده می‌شود. هنگام استفاده از دستور باید نام ایمیج هم ذکر شود. 

 

parsdev@parsdev:/home/parsdev$ docker history httpd
IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT
ee39f68eb241        3 days ago          /bin/sh -c #(nop)  CMD ["httpd-foreground"]     0B
          3 days ago          /bin/sh -c #(nop)  EXPOSE 80                    0B
          3 days ago          /bin/sh -c #(nop) COPY file:c432ff61c4993ecd…   138B
          2 days ago          /bin/sh -c set -eux;   savedAptMark="$(apt-m…   49.1MB
          2 days ago          /bin/sh -c #(nop)  ENV HTTPD_PATCHES=           0B
          2 days ago          /bin/sh -c #(nop)  ENV HTTPD_SHA256=b4ca9d05…   0B
          2 days ago          /bin/sh -c #(nop)  ENV HTTPD_VERSION=2.4.39     0B
          2 days ago          /bin/sh -c set -eux;  apt-get update;  apt-g…   35.4MB
          5 days ago          /bin/sh -c #(nop) WORKDIR /usr/local/apache2    0B
          5 days ago          /bin/sh -c mkdir -p "$HTTPD_PREFIX"  && chow…   0B
          5 days ago          /bin/sh -c #(nop)  ENV PATH=/usr/local/apach…   0B
          5 days ago          /bin/sh -c #(nop)  ENV HTTPD_PREFIX=/usr/loc…   0B
          4 days ago          /bin/sh -c #(nop)  CMD ["bash"]                 0B
          4 days ago          /bin/sh -c #(nop) ADD file:71ac26257198ecf6a…   69.2MB

 

  1. Docker rmi 

این دستور برای آزاد کردن مقداری فضای دیسک استفاده می شود. هنگام استفاده از این دستور از شناسه image برای حذف آن استفاده می شود.

 

docker rmi eb0e825dc3cf
 

  1. Docker ps -a 

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

 

parsdev@parsdev:/home/parsdev$ docker ps -a
CONTAINER ID        IMAGE                            COMMAND                  CREATED             STATUS                     PORTS                                                                                                                                NAMES
09ca6feb6efc        httpd                            "httpd-foreground"       51 seconds ago      Up 49 seconds              80/tcp                                                                                                                               sane_trell
2f6fb3381078        sequenceiq/hadoop-docker:2.7.0   "/etc/bootstrap.sh -d"   2 weeks ago         Exited (137) 9 days ago                                                                                                                                         better_naman
9f397feb3a46        sequenceiq/hadoop-docker:2.7.0   "/etc/bootstrap.sh -…"   2 weeks ago         Exited (255) 2 weeks ago   2122/tcp, 8030-8033/tcp, 8040/tcp, 8042/tcp, 8088/tcp, 19888/tcp, 49707/tcp, 50010/tcp, 50020/tcp, 50070/tcp, 50075/tcp, 50090/tcp   determined_sarah
9b6343d3b5a0        hello-world                      "/hello"                 2 weeks ago         Exited (0) 2 weeks ago                                                                                                                                          mega_steven

  1. Docker copy 

این دستور یک فایل را از docker به سیستم لوکال کپی می کند.

 

parsdev@parsdev:/home/parsdev$ sudo docker cp 09ca4feb7tfc:/usr/local/apache2/logs/httpd.pid /home/parsdev/
[sudo] password for parsdev:
In the above example, we used the docker container with id 09ca4feb7tfc to copy the file ‘http.pid.’ To check whether the file is copied or not, run this command -
parsdev@parsdev:/home/parsdev$ ls
Desktop  Documents  example  examples.desktop  httpd.pid  nginx_new.yml  nginx.yml

 

  1. Docker logs   

این دستور برای بررسی گزارش‌های تمام کانتینرهای docker با شناسه ذکر شده در دستور استفاده می‌شود. 

 

parsdev@parsdev:/home/parsdev$ docker logs 09ca6feb6efc
AH00558: httpd: Could not reliably determine the server’s fully qualified domain name, using 172.17.0.2. Set the ‘ServerName’ directive globally to suppress this message
AH00558: httpd: Could not reliably determine the server’s fully qualified domain name, using 172.17.0.2. Set the ‘ServerName’ directive globally to suppress this message
[Mon Jul 16 14:01:55.400472 2019] [mpm_event:notice] [pid 1:tid 140299791516800] AH00489: Apache/2.4.39 (Unix) configured -- resuming normal operations
[Mon Jul 16 14:01:55.400615 2019] [core:notice] [pid 1:tid 140299791516800] AH00094: Command line: 'httpd -D FOREGROUND'
[Mon Jul 16 14:08:36.798229 2019] [mpm_event:notice] [pid 1:tid 140299791516800] AH00491: caught SIGTERM, shutting down
AH00558: httpd: Could not reliably determine the server’s fully qualified domain name, using 172.17.0.2. Set the ‘ServerName’ directive globally to suppress this message
AH00558: httpd: Could not reliably determine the server’s fully qualified domain name, using 172.17.0.2. Set the ‘ServerName’ directive globally to suppress this message
[Mon Jul 15 14:08:38.259870 2019] [mpm_event:notice] [pid 1:tid 139974087980160] AH00489: Apache/2.4.39 (Unix) configured -- resuming normal operations
[Mon Jul 15 14:08:38.260007 2019] [core:notice] [pid 1:tid 139974087980160] AH00094: Command line: 'httpd -D FOREGROUND'
[Mon Jul 15 14:09:01.540647 2019] [mpm_event:notice] [pid 1:tid 139974087980160] AH00491: caught SIGTERM, shutting down
AH00558: httpd: Could not reliably determine the server’s fully qualified domain name, using 172.17.0.2. Set the ‘ServerName’ directive globally to suppress this message
AH00558: httpd: Could not reliably determine the server’s fully qualified domain name, using 172.17.0.2. Set the ‘ServerName’ directive globally to suppress this message
[Mon Jul 16 14:10:43.782606 2019] [mpm_event:notice] [pid 1:tid 140281554879616] AH00489: Apache/2.4.39 (Unix) configured -- resuming normal operations
[Mon Jul 16 14:10:43.782737 2019] [core:notice] [pid 1:tid 140281554879616] AH00094: Command line: 'httpd -D FOREGROUND'
AH00558: httpd: Could not reliably determine the server’s fully qualified domain name, using 172.17.0.2. Set the ‘ServerName’ directive globally to suppress this message
AH00558: httpd: Could not reliably determine the server’s fully qualified domain name, using 172.17.0.2. Set the ‘ServerName’ directive globally to suppress this message
[Mon Jul 16 14:14:08.270906 2019] [mpm_event:notice] [pid 1:tid 140595254346880] AH00489: Apache/2.4.39 (Unix) configured -- resuming normal operations
[Mon Jul 16 14:14:08.272628 2019] [core:notice] [pid 1:tid 140595254346880] AH00094: Command line: 'httpd -D FOREGROUND'

 

  1. Docker volume 

این دستور یک حجم ایجاد می کند تا کانتینر docker بتواند از آن برای ذخیره داده ها استفاده کند. 

 

parsdev@parsdev:/home/parsdev$ docker volume create
7e7bc886f69bb24dbdbf19402e31102a25db91bb29c56cca3ea8b0c611fd9ad0
To check whether this command created the volume or not, run the following command -
parsdev@parsdev:/home/parsdev$ docker volume ls
DRIVER              VOLUME NAME
local               7e7bc886f69bb24dbdbf19402e31102a25db91bb29c56cca3ea8b0c611fd9ad0

 

  1. Docker logout 

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

 

parsdev@parsdev:/home/parsdev$ docker logout
Removing login credentials for https://index.docker.io/v1/

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

نتیجه

می توانید دستورات docker را در محیط آزمایشی خود امتحان کنید تا آنها را برای توسعه تمرین کنید. امیدواریم که این 20 دستور docker به شما کمک کند تا کار با docker را شروع به کار کرده و یاد بگیرید که توابع اساسی را بدون خسنگی استفاده کنید.


اشتراک گذاری مقاله :

نظرتون برامون مهمه شما اولین نظر رو بنویسید