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
:
3. Пошук Docker образів (images) на сервері регістра
Використовуючи команду docker search
, можна запустити пошук Docker образів на сервері регістра з термінала. Припустимо, необхідно знайти останні Docker образи Debian.
[root@docker ~]# docker search debian
Виведення повинне виглядати приблизно так:
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;lt;strong&amp;amp;amp;amp;gt;root@9254e01fadad:/#
Ця команда запускає контейнер з ім’ям debian_container
1, далі потрібно встановити 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 -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
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.
Якщо Вам цікаво дізнатися, що таке вразливість нульового дня, переходьте на статтю від IT Education Blog.
20. Задати тег/назву для образу Docker-контейнера
Команда docker tag
використовується для установки тегу або назви образу Docker-контейнера в репозиторії.
Дізнатися детально про дистрибутиви Linux 2022 року на сайті IT Education Blog.
Синтаксис:# tag docker source_image {: tag} target_image {: tag}
Припустимо, ми хочемо встановити назву образу ‘centos: 7’ як ‘myCentOS7: v1
[root@docker ~]# docker tag centos:7 mycentos7:v1
[root@docker ~]#
Тепер образ контейнера має назву
Детально про використання та налаштування Docker вивчайте на нашому курсі Адміністрування Docker