IT-аутсорсинг для поддержки и развития малого и среднего бизнеса
АйТи Спектр

Как с помощью команд управлять docker-контейнерами и образами

Опубликовано 22.06.2023
photo
Алексей Прунов
Технический директор компании «АйТи Спектр»
Время прочтения - 4 мин
Задать вопрос

Что такое docker контейнер

Docker — это разработчик одноименного проекта, продвигающий его совместно с поставщиками облачных технологий и решений «Виндовс» и «Линукс». Среди преимуществ: открытый исходный код, размещение приложений в облаке либо на локальных мощностях при минимальном участии пользователя, реализация в виде переносных автономных контейнеров. Также стоит отметить низкий уровень потребления ресурсов и быстрый запуск. Эти достоинства позволили технологии получить популярность среди пользователей и претендовать на звание индустриального стандарта, который применяют даже крупнейшие компании.

Docker функционирует с помощью физических серверных решений и виртуальных машин (ВМ). Данная технология является следующей ступенью развития ВМ, представляя собой изолированную среду, где с удобством возможно разрабатывать и тестировать любое ПО. Разберем подробнее, что такое докер-контейнер.

Контейнер Docker и виртуальные машины — сравнение

Рассмотрим, чем отличается «Докер» от виртуальных машин.

  • ВМ функционируют на базе 3-уровневого набора, состоящего из инфраструктуры, узловой операционной системы и низкоуровневой оболочки. Сверху виртуальные машины запускают свою ОС, а также библиотеки либо двоичные файлы. 
  • Докер-контейнеры работают на основе только инфраструктуры, ОС и ядра контейнеров. Причем эти компоненты предоставляет сервер узла, сам же container состоит из приложения и сопутствующих элементов.

Для полной виртуализации ВМ необходимо гораздо больше ресурсов по сравнению с созданием Docker. Поэтому контейнеры легче развернуть и быстрее запустить, что позволяет использовать и обслуживать большее количество служб, не увеличивая мощность сервера, содержащего всю инфраструктуру. Ядро изолирует контейнеры, применяя основные возможности ОС, а, т. к. множество docker запускается на едином ядре, то степень обособленности будет ниже, чем у ВМ. Докер-контейнеры позволяют отладить образ, упаковать приложение либо службу, чтобы затем развернуть в любой поддерживаемой среде и сразу продолжить работу.

Каждый слой Docker применяет к файловой системе некоторые изменения после того, как пользователь введет какую-либо команду. Образ является как бы доп. накопителем (используемым только для чтения), который устанавливается на «компьютер» — докер-контейнер. Последний, как и физический ПК, легко включается и отключается.

Главные команды Docker

Чтобы управлять ключевыми элементами, пользователь должен ввести текст. Вначале указывается слово-ключ docker, затем выполняемый код и после всего — объект, аргумент и другие опции. Для обращения к отдельному контейнеру/ образу используют ID или наименования, присвоенные разработчиком.

Команды для управления контейнерами

Для регулирования работы контейнеров применяют стандартную конструкцию «docker наименование команды». В скобках пользователь размещает необязательные опции, позволяющие адаптировать container для выполнения особых задач.

КомандаКонструкция исполняемого кодаОписаниеОсобенности
createcreate [опции] имя образа [доп. команды][аргументы]Создает container из указанного образа
startstart [опции] наименование контейнера [можно ID]Запускает уже созданный контейнер
runrun [опции] наименование контейнера [можно ID][команды][аргументы]Соединяет create и start. Создает и активирует container
pspsПоказывает все работающие контейнеры и следующие сведения:
ID — код отдельного контейнера.
IMAGE — образ, который использует container.
COMMAND — перечень команд, выполняемых непосредственно после старта.
CREATED — время создания контейнера (например, «20 мин назад»).
STATUS — текущий статус и время активности после запуска.
PORTS — порты, которые container использует из перечня.
NAMES — наименования контейнеров, применяемые в исполняемых кодах.
docker ps -a (опция -a позволяет пользователю увидеть все существующие в системе контейнеры);
docker ps volume (volume позволяет отобразить тома, которые предпочтительно используются для хранения информации)
inspectinspect [опции] наименование контейнера [можно ID]Выдает детальные данные о конкретном containerИнформация отображается в JSON-формате. Изменить его возможно опцией -format
logslogsПоказывает журнал событий (логи)опция follow в исполняемом коде «docker logs -follow наименование контейнера» позволяет показывать логи в терминале в настоящем времени, что позволяет непрерывно отслеживать работу системы и возникновение ошибок
stopstop [опции] наименование контейнера [можно ID]Останавливает конкретный контейнер, требуя по коду SIGTERM закончить деятельность и сохранить информацию, с которой работал пользователь. Если container слишком долго не отзывается, то по сигналу SIGKILL требует «убить» активность без сохранения сведений
killkillРаботает аналогично stop, но без использования сигнала SIGTERM. Сразу отключает container, без сохранения сведений
rmrm [опции] наименование контейнера [можно ID]Удаляет указанный контейнер, который должен быть отключен, иначе команда не сработаетВозможно удалить одновременно некоторое количество контейнеров, перечисляя их наименования либо ID:
docker rm test_container 38gt 14962
restartrestart [опции] наименование контейнера [можно ID]Перезапускает отдельный container

Команды Docker для управления образами

Управление образами происходит посредством ряда команд, обладающих общей конструкцией «docker image наименование команды».

КомандаКонструкция исполняемого кодаОписаниеОсобенности и примеры для работы с образом new_time в папке moi_docs
buildbuild [опции] наименование и адрес файла DockerfileПроизводит сборку образа с самого начала по предварительно установленным параметрам. Эта информация хранится в файлах Dockerfile, расположенным по известным пользователю URL-адресам либо загруженным в ФСДля сборки необходимо ввести команду
docker image build -t moi_docs/new_time
pushpush [опции] имя и адрес хабаРазмещает собранный образ в Docker Hub, куда имеют свободный доступ другие юзерыДля размещения в хабе используют docker image push moi_docs/new_time
pullpull [опции] наименование и адрес размещения скачанного образаСкачивает файлы из Docker HubДля загрузки файла из хаба применяют docker image pull moi_docs/new_time
lsls [опции][адрес репозитория:тег]Выводит перечень всех существующих образов и сведения об их объемахВ команде используют некоторые ключи: -a — добавляет в список промежуточные образы;
-f — использует для фильтрации выдачи конкретные условия
–format — изменяет формат выдачи сведений;
-q — предоставляет ID вместо наименований и т. д.
historyhistory [опции] наименование образаПоказывает слои образа, сопровождая их полезной информацией (наименование, объем, время создания)Для отображения слоев используют docker image history new_time
inspectinspect [опции] наименование образаВыдает все существенные данные об образеИнформация отображается в JSON-формате. Изменить его возможно опцией -format. Опция -s отображает объем проверяемых элементов
rmrm [опции] наименование и путь до образаУдаляет один или несколько докер-образовДля удаления используют команду docker image rm moi_docs/new_time. Для удаления всех образов после rm вводят $(docker images -a -q)

Команда docker images отображает перечень всех найденных докер-образов. Применив ее, пользователь получает сведения о наименовании каждого репозитория, где расположен образ (REPOSITORY), тега образа (TAG, прописывают в конце команды после «:»), кода (IMAGE ID), времени действия (CREATED) и размере (SIZE).

Прочие команды

Существует еще несколько общих команд для управления ключевыми элементами (в начале также прописывается docker):

  • version — отображает технические сведения о клиенте и сервере (в т. ч. версию);
  • login — позволяет пройти авторизацию в Docker Hub, где пользователи обмениваются файлами;
  • system prune — удаляет ненужные образы, контейнеры и другие данные.

Это основные команды, применяемые для работы с докер-контейнерами. С их помощью возможно собрать образ, создать и запустить container, а также осуществить другие действия с элементами.

Заключение

Если вам мало элементарных знаний для работы с докер-контейнерами, изучите дополнительную информацию и обогатите свои знания. Нет времени разбираться или нужные сведения представлены не совсем понятно? Специалисты «АйТи Спектр» помогут вам решить вопросы, возникающие по поводу установки и работы Docker, а также окажут другие меры ИТ-поддержки.

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 3.5 / 5. Количество оценок: 4

Оценок пока нет. Поставьте оценку первым.

9 комментариев
    • Для этого существует команда exit. Наберите ее, и произойдет выход из конкретного контейнера.

  • Я запускал контейнер, но мне система пишет, что он локально недоступен. Что мне делать?

    • Обычно система автоматически загружает нужный образ, после чего запускает докер-контейнер. Если в авторежиме этого не произошло, посмотрите внимательно на экран, возможно, система предлагает вам дать свое согласие на загрузку образа. На крайний случай перезапустите ОС, чтобы исключить ошибку.

  • А что такое снапшоты докер? Они ведь тоже нужны для работы контейнера?

    • Snapshot — это то же самое, что и образ. Последний предназначен только для чтения, поэтому имеет второе название «снимок», «снапшот». Это файл, в который нельзя внести какие-либо изменения, и где содержатся элементы, необходимые для старта приложения.

  • Докер очень удобная технология. Наши айтишники создали для организации образы для внутреннего использования, разместили их в приватном реестре, и теперь у каждого сотрудника есть доступ к нужным приложениям. Все разворачивается очень быстро, всем удобно.

  • Да, хорошо, что эта технология бесплатна. Как удобно организациям, особенно небольшим, установить такой софт и работать, не задействуя большое количество ресурсов.

  • По мне, нет никакой разницы, где установлены докер-контейнеры — на виндовсе или линуксе. С ними одинаково комфортно и понятно работать. Мы очень быстро обучили своих сотрудников, после чего у них возникает очень мало вопросов, в основном по технической части.

Оставить комментарий