20 корисних команд для роботи з Docker в Linux

Docker Container — технологія, яка дозволяє автоматизувати процес розгортання та управління додатками в середовищі віртуалізації на рівні операційної системи. В основному Docker-контейнери використовуються для CI/CD систем.

У статті розглянемо 20 найчастіше використовуваних команд Docker на прикладі Linux-систем.

1. Перевірка версії Docker

Перш ніж приступати до роботи, необхідно знати, яка версія Docker використовується. Для цього достатньо ввести:

[root@docker ~]# docker --version
Docker version 17.03.1-ce, build c6d412e
[root@docker ~]#

2.Отримання інформації про інсталяції

Також важливо знати основну інформацію про інсталяції, що можна зробити за допомогою команди docker info:

docker-info-command-output

3. Пошук Docker образів (images) на сервері регістра

Використовуючи команду docker search, можна запустити пошук Docker образів на сервері регістра з термінала. Припустимо, необхідно знайти останні Docker образи Debian.

[root@docker ~]# docker search debian

Виведення повинне виглядати приблизно так:

docker-search-command-linux-1024x408

4. Завантаження образів Docker-контейнерів

За допомогою команди docker pull можна завантажувати образи Docker-контейнера з сервера регістра або сховища.

Синтаксис:
# docker pull <Name-of-Image>

Команда docker pull завжди завантажує останню версію образу, але є можливість вказати конкретний образ. Наприклад, необхідно завантажити останню версію Debian Docker image:

[root@docker ~]# docker pull debian
Using default tag: latest
latest: Pulling from library/debian
10a267c67f42: Already exists
Digest: sha256:476959f29a17423a24a17716e058352ff6fbf13d8389e4a561c8ccc758245937
Status: Downloaded newer image for debian:latest
[root@docker ~]#

Завантаження конкретної версії ОС образу Docker-контейнера

Якщо, наприклад, ми хочемо звантажити образ Docker-контейнера для Ubuntu 14.04.

[root@docker ~]# docker pull ubuntu:14.04
14.04: Pulling from library/ubuntu
cf0a75889057: Already exists
c8de9902faf0: Already exists
a3c0f7711c5e: Already exists
e6391432e12c: Already exists
624ce029a17f: Already exists
Digest: sha256:b2a55128abd84a99436157c2fc759cf0a525c273722460e6f8f9630747dfe7e8
Status: Downloaded newer image for ubuntu:14.04
[root@docker ~]

5. Список всіх завантажених образів Docker-контейнера

Всякий раз, коли ми завантажуємо образи Docker за допомогою команди docker pull, зберігаються локальні образи (/var/lib/docker) на Docker сервері. Можна також перерахувати всі завантажені образи докерів за допомогою команди docker images:

[root@docker ~]# docker images
REPOSITORY             TAG                 IMAGE ID       CREATED             SIZE
wordpress              latest              ca96afcfa242      2 weeks ago       406 MB
xibosignage/xibo-xmr   release_1.8.1       223afb5ecffe       2 weeks ago         269 MB
ubuntu                 16.04               ebcd9d4fca80        2 weeks ago         118 MB
ubuntu                 14.04               2ff3b426bbaa        2 weeks ago         188 MB
centos                 7                   8140d0c64310        2 weeks ago         193 MB
mysql                  5.6                 ed7b6c642b9d        3 weeks ago         299 MB
mysql                  5.7                 e799c7f9ae9c        3 weeks ago         407 MB
debian                 latest              3e83c23dba6a        3 weeks ago         124 MB
xibosignage/xibo-cms   latest              9678c5299918        5 weeks ago         511 MB
xibosignage/xibo-cms   release_1.8.1       c2767fdc7262        5 weeks ago         511 MB

6. Запуск Docker-контейнера

Контейнери запускаються за допомогою команди docker run. Наприклад, ми хочемо запустити контейнер з образом Debian.

[root@docker ~]# docker run -it -p 9000:80
--name=debian_container1 debian
&amp;amp;amp;amp;amp;lt;strong&amp;amp;amp;amp;amp;gt;root@9254e01fadad:/#

Ця команда запускає контейнер з ім’ям debian_container1, далі потрібно встановити pat rule таким чином, що якщо який-небудь запит приходить до 9000 порту на хості docker, то він буде перенаправлений на контейнер debian на 80-порті. Ми отримуємо консоль відразу після виконання команди. Щоб зупинити/закрити контейнер, потрібно ввести exit або «ctrl+p+q» (закриває контейнер без виходу).

7. Запуск контейнера в режимі демона

Ми можемо запустити контейнер в режимі від’єднання за допомогою опції -d в команді docker run. Приклад показаний нижче:

[root@docker ~]# docker run -it -d -p 9001:80 --name=web_container centos:7
258adf2f71fba82aa04e5f7e9ebba27b8ad87b0439e9bd7d2bcf7e3c40279d54
[root@docker ~]#

8. Отримання контейнерної консолі з ‘docker attach’

У наведеному вище прикладі у нас є контейнер в режимі демона, тож ми можемо використовувати його консоль за допомогою команди docker attach.

Синтаксис:
# docker attach {container_name або container_id}

[root@docker ~]# docker attach web_container
[root@258adf2f71fb /]#

9. Список контейнерів по команді docker ps

Щоб перелічити всі запущені контейнери, необхідно ввести команду docker ps.

[root@docker ~]# docker ps

docker-ps-command-linux-1024x256

Для перерахування всіх контейнерів використовується команда docker ps -a.

10. Запуск, зупинка, перезавантаження і знищення контейнерів

Як і віртуальні машини, ми можемо запускати, зупиняти та перезапускати Docker-контейнери.

Для зупинки запущеного контейнера використовується команда

[root@docker ~]# docker stop db_container1
db_container1
[root@docker ~]#

Для запуску контейнера необхідно ввести

[root@docker ~]# docker start db_container1
db_container1
[root@docker ~]#

Команда, яка використовується для перезапуску контейнера

[root@docker ~]# docker restart db_container1
db_container1
[root@docker ~]#

Ми також можемо знищити процес Docker-контейнера

[root@docker ~]# docker kill db_container2
db_container2
[root@docker ~]#

11. Видалити/перемістити Docker-контейнер

Команда docker rm використовується для переміщення або видалення контейнера. Працює тільки тоді, коли Docker зупинений/вимкнений.

Синтаксис:
# docker rm {container_name_OR_container_id}

[root@docker ~]# docker rm db_container2
db_container2
[root@docker ~]#

12. Видалення/переміщення образів Docker-контейнера

Подібно до контейнерів, ми також можемо видалити або перемістити образи контейнерів командою docker rmi. Припустимо, потрібно видалити образ ‘Ubuntu: 14.04:

[root@docker ~]# docker rmi ubuntu:14.04
Untagged: ubuntu:14.04
Untagged: ubuntu@sha256:b2a55128abd84a99436157c2fc759cf0a525c273722460e6f8f9630747dfe7e8
Deleted: sha256:2ff3b426bbaafba63cae165e8f6a4955a24a53cdf6d25cce00353e97cda3df71
[root@docker ~]#

У наведеній вище команді замість назви образу можна використовувати його id:

[root@docker ~]# docker rmi 2ff3b426bba

13. Зберегти та завантажити образ контейнера Docker в/з файлу tar

Припустимо, що ми зробили деякі зміни в debian-образі та хочемо експортувати його як tar-файл. Це можна зробити за допомогою команди docker save.

[root@docker ~]# docker save debian -o mydebian.tar

14. Експорт та імпорт контейнера в/з tar-архіву

Контейнер можна експортувати в файл tar з допомогою команди docker export. Синтаксис показаний нижче:

# Docker export container_name_or_id

Наприклад, необхідно експортувати web_container в tar-файл.

[root@docker ~]# docker export web_container -o  web_container.tar
[root@docker ~]#

Команда docker import використовується для імпорту контейнера з файлу tar

[root@docker ~]# docker import web_container.tar
sha256:254b1bdba79775191d33d221eb547e9caca161363639273103193919db71778d
[root@docker ~]#

15. Відображення історії образу Docker-контейнера

Використовуючи команду docker history, можна подивитися, які команди виконувалися при побудові образу Docker-контейнера, як на прикладі, показаному нижче.

Синтаксис:
# docker history {Image_Name_OR_Image_id}

[root@docker ~]# docker history ubuntu:16.04

16. Витягування журналів з контейнера

Можна витягувати журнали з контейнерів без входу в систему, використовуючи команду docker logs

Синтаксис:
# docker logs {container_name_or_container_id}

[root@docker ~]# docker logs xibodocker_cms-web_1

17. Статистика використання ресурсів Docker-контейнера

Для відображення ресурсів центрального процесора, пам’яті та мережевого вводу-виводу всіх контейнерів застосовується команда docker stats

[root@docker ~]# docker stats

docker-stats-command-output-linux-1024x285

18. Виведення IP-адреси контейнера

Інформація про низькорівневий контейнер відображається за допомогою команди docker inspect. Ми можемо отримати IP-адресу контейнера з виведення команди. Приклад показаний нижче.

[root@docker ~]# docker inspect web_container | grep IPAddress | cut -d '"' -f 4
172.17.0.3
172.17.0.3
[root@docker ~]#

19. Створення образів Docker-контейнерів за допомогою Dockerfile

Команда docker build дозволяє створити образ контейнера за допомогою DockerFile.

[Root @ docker ~] # docker build -t mycentos: web1.

20. Задати тег/назву для образу Docker-контейнера

Команда docker tag використовується для установки тегу або назви образу  Docker-контейнера в репозиторії.

Синтаксис:
# tag docker source_image {: tag} target_image {: tag}

Припустимо, ми хочемо встановити назву образу ‘centos: 7’ як ‘myCentOS7: v1

[root@docker ~]# docker tag centos:7 mycentos7:v1
[root@docker ~]#

Тепер образ контейнера має назву

docker-tag-linux

Детально про використання та налаштування Docker вивчайте на нашому курсі Адміністрація Docker

Залишити відповідь

Дякуємо, що поділились