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

Docker Container – технология, которая позволяет автоматизировать процесс развертывания и управления приложениями в среде виртуализации на уровне операционной системы. В основном Docker-контейнеры используются для СI/CD cистем.
В статье рассмотрим 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 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;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;strong&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;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 -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-контейнера, как на примере, показанном ниже.
Синтаксис: # история докера {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 '&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;quot;' -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-контейнера в репозитории.
Синтаксис: # tag docker source_image {: tag} target_image {: tag}
Предположим, мы хотим установить название образа ‘centos: 7’ как ‘MyCentOS7: v1’
[root@docker ~]# docker tag centos:7 mycentos7:v1 [root@docker ~]#
Теперь образ контейнера имеет название

Подробно об использовании и настройке Docker изучайте на нашем курсе Администрирование Docker