آیا در 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 Engine نرم افزاری است که بر میزبانی کانتینرها نظارت میکند. زیرمجموعه Moby Project، 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
-
Docker version
معمولا با یافتن نسخه نصب شده docker که روی آن کار می کنیم شروع می کنیم.
parsdev@parsdev:/home/parsdev$ docker --version
Docker version 18.09.6, build 481bc77
-
Docker search
ایمیج خاصی را از طریق داکر هاب جستجو می کند. این دستور اطلاعات خاصی از جمله نام image، توضیحات، خودکار، ستارههای رسمی و غیره را برمیگرداند.
docker search MySQL
می توانید از وب سایت Docker Hub برای جستجو از طریق گزینه مبتنی بر رابط کاربری گرافیکی استفاده کنید.
-
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 استفاده کنیم.
-
Docker run
این دستور برای ایجاد یک کانتینر از یک ایمیج استفاده می شود.
docker run --env MYSQL_ROOT_PASSWORD=my-secret-pw --detach mysql
گزینه –detach کانتینر را اجرا میکند و گزینه –env برای تنظیم متغیر اجباری استفاده میشود. اگر از گزینه –name استفاده نکنید، داکر به طور تصادفی یک نام به کانتینر اختصاص می دهد.
- Docker ps
این دستور برای لیست کردن تمام کانتینرهای در حال اجرا در پس زمینه استفاده می شود. در ادامه نحوه انجام آن آمده است:
docker ps --all
-
Docker stop
دستور docker stop یک کانتینر را با استفاده از نام کانتینر یا شناسه آن متوقف می کند.
docker stop h7m52redeecc
-
Docker restart
این دستور برای راه اندازی مجدد کانتینر متوقف شده استفاده می شود. توصیه می شود پس از راه اندازی مجدد سیستم از این مورد استفاده کنید.
parsdev@parsdev:/home/parsdev$
docker restart h7m52redeecc
-
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
-
Docker exec
این دستور برای دسترسی به کانتینری که در حال اجراست استفاده می شود.
docker exec -it test_db bash
mysql -uroot -pmy-secret-pw
SHOW DATABASES;
شما باید نام یا شناسه کانتینر را ارائه دهید که در این مورد test_db است. گزینه های -i و -t برای دسترسی به حالت تعاملی استفاده می شوند.
-
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
-
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.
-
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
-
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
-
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
-
Docker rmi
این دستور برای آزاد کردن مقداری فضای دیسک استفاده می شود. هنگام استفاده از این دستور از شناسه image برای حذف آن استفاده می شود.
docker rmi eb0e825dc3cf
-
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
-
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
-
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'
-
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
- Docker logout
این دستور شما را از داکر هاب خارج می کند.
parsdev@parsdev:/home/parsdev$ docker logout
Removing login credentials for https://index.docker.io/v1/
خرید سرور مجازی لینوکس در پنج موقعیت جغرافیایی ایران، ترکیه، هلند، آلمان و آمریکا با قابلیت تحویل آنی در پارسدو فراهم است.
نتیجه
می توانید دستورات docker را در محیط آزمایشی خود امتحان کنید تا آنها را برای توسعه تمرین کنید. امیدواریم که این 20 دستور docker به شما کمک کند تا کار با docker را شروع به کار کرده و یاد بگیرید که توابع اساسی را بدون خسنگی استفاده کنید.
نظرتون برامون مهمه شما اولین نظر رو بنویسید