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»

docker-info-command-output3. Поиск 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 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
<strong>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-контейнера, как на примере, показанном ниже.

Синтаксис: # история докера {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 изучайте на нашем курсе «DevOps с точки зрения системного администрирования»!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *