Серверы
  • Готовые серверы
  • Конфигуратор
  • Серверы с 1CPU
  • Серверы с 2CPU
  • 4 поколение AMD EPYC и Intel Xeоn
  • Серверы с AMD Ryzen и Intel Core i9
  • Серверы для хранения данных
  • Cерверы с портом 10 Гбит/c
  • GPU
  • Распродажа
  • VPS
    GPU
  • Выделенные серверы с GPU
  • Виртуальные серверы с GPU
  • Распродажа
    Маркетплейс
    Colocation
  • Размещение серверов в дата-центре в Москве
  • Обслуживание серверов в других ЦОД
  • Кластеры
    Прокат
    Услуги
  • Аренда сетевого оборудования
  • Защита L3-L4 от DDoS атак
  • IPV4 и IPV6 адреса
  • Администрирование серверов
  • Уровни технической поддержки
  • Мониторинг сервера
  • BYOIP
  • USB диск
  • IP-KVM
  • Трафик
  • Коммутация серверов
  • AI-чат-бот Lite
  • О нас
  • Работа в HOSTKEY
  • Панель управления серверами и API
  • Дата-центры
  • Сеть
  • Тест скорости
  • Специальные предложения
  • Отдел продаж
  • Для реселлеров
  • Гранты для специалистов по Data Science
  • Гранты для научных проектов и стартапов
  • Документация и Частые вопросы
  • Новости
  • Блог
  • Оплата
  • Документы
  • Сообщите о нарушении
  • Looking Glass
  • 16.12.2024

    Как посмотреть запущенные контейнеры в Docker?

    server one
    HOSTKEY

    1. Описание Docker и его роли

    Docker — это платформа с открытым исходным кодом, которая позволяет автоматизировать развертывание приложений в контейнерах.

    Проект Docker родился как внутренняя разработка компании dotCloud, основанной Соломоном Хайксом в 2008 году для создания публичной платформы PaaS с поддержкой разных языков программирования. Вместе с Хайксом над проектом работали Андреа Лудзарди и Франсуа-Ксавье Бурле. В марте 2013 года код Docker был открыт под лицензией Apache 2.0, а в июне компанию возглавил Бен Голуб, ранее занимавший руководящую должность в GlusterFS. Октябрь 2013 года стал поворотным моментом: dotCloud переименовалась в Docker, подчеркнув смену фокуса на новую технологию, а PaaS-платформа сохранила название dotCloud.

    В том же году Docker вошел в OpenStack Havana и Red Hat Enterprise Linux версии 6.5. Позднее он был включен и в Fedora 20, а также получил поддержку в Google Compute Engine. В 2014 году начались работы по интеграции Docker с Hadoop, где он показал превосходство над KVM в производительности на ключевых операциях. С 2017 года помимо открытой версии Docker выпускается коммерческая редакция для организаций.

    Основные роли Docker

    1. Изоляция приложений. Контейнеры изолируют приложения друг от друга и от хост-системы, создавая свое собственное окружение. Это предотвращает конфликты зависимостей, где одна библиотека может быть совместима только с одной версией Python. Также контейнеры защищают хост-систему от потенциальных вредоносных действий или сбоев в работающем приложении.
    2. Портативность. Одним из ключевых преимуществ Docker является портативность. Приложение, упакованное в контейнер, легко переносится на разные платформы (Linux, Windows, macOS) без изменений кода. Это означает, что разработчики могут писать код один раз и запускать его на любой платформе с установленным Docker Engine.
    3. Автоматизация. Docker упрощает весь жизненный цикл приложения, от разработки до развертывания и масштабирования. Он автоматизирует процессы сборки, тестирования, упаковки в контейнеры и запуска приложений.
    4. Масштабируемость. Docker позволяет легко масштабировать приложения, увеличивая или уменьшая количество запущенных контейнеров в зависимости от нагрузки.

    Пример. Представьте, что вы создали телеграм-бота, который отвечает на вопросы пользователей с помощью нейросети и работает в связке с движком Ollama. Бота использовало несколько десятков человек, но в какой-то момент их стало в разы больше — новый тренд, популярная новость или активное обсуждение темы, связанной с ботом.

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

    Вы можете создать Docker-образы для вашего бота с необходимыми инстансами Ollama и построить логику работы так, чтобы, когда количество запросов превышает определенный порог, Docker автоматически запускал новые контейнеры с Ollama, обеспечивая плавную работу бота даже в условиях резкого скачка нагрузки. После того как нагрузка снизится, Docker удалит лишние контейнеры, чтобы сэкономить ресурсы.

    Иначе говоря, в данном примере Docker позволил быстро адаптироваться к увеличению пользователей и предоставить стабильную и быструю работу вашего телеграм-бота, причем независимо от масштаба нагрузки.

    2. Что такое контейнеры и их состояния?

    Контейнер — это виртуальная среда, которая содержит все необходимое для работы приложения: код, библиотеки, системные зависимости и т. д. Его можно представить как аналог виртуальной машины, только не перегруженной системными библиотеками и ядром операционной системы. Docker Engine использует операционные системы — хосты (например Ubuntu) для создания и запуска контейнеров.

    Каждый контейнер выполняется в собственном пространстве пользователя и имеет свою файловую систему, процессы и ресурсы.

    Основные состояния контейнера:

    • Запущенный. Контейнер активно выполняет задачи. Вы можете взаимодействовать с ним через терминал или порты.
    • Остановленный. Контейнер не выполняет задачи, но все его данные сохраняются. Он может быть легко перезапущен.
    • Удаленный. Контейнер завершил работу (либо успешно, либо неудачно) и был удален с системы.
    • Неудачный. Контейнер завершил работу неудачно из-за ошибок в коде или системных проблем.

    3. Почему важно знать, какие контейнеры запущены?

    Контроль состояния контейнеров является одним из ключевых элементов управления Docker, он обеспечивает надежную работу и безопасность всего окружения.

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

    Кроме того, контроль состояния контейнеров необходим для эффективного отладки и устранения неполадок. Если приложение работает некорректно, необходимо проверить состояние его контейнера, чтобы понять причину сбоя и принять соответствующие меры. Быстрота и точность диагностики напрямую зависят от возможности мониторить состояние каждого контейнера.

    Контроль состояния контейнеров также повышает уровень безопасности всей системы. Отключение ненужных контейнеров минимизирует количество потенциальных целей для атак, снижая общую уязвимость системы к вредоносным программам и злоумышленникам. Это особенно важно в средах с высокой конфиденциальностью данных, где безопасность является приоритетом.

    4. Обзор командной строки Docker для начинающих

    Docker CLI (командная строка) — это мощный инструмент для управления всеми аспектами Docker: контейнерами, образами и сетями. Вы всегда можете посмотреть доступные вам команды, набрав docker --help в командной строке.

    Основные команды Docker

    Команда Описание
    docker images Показывает список всех доступных образов Docker на вашем хосте. Это все образы, которые вы скачали и запустили на вашей машине и которые не были физически удалены с нее.
    docker run Запускает новый контейнер из образа. C ключом -d запускает контейнер под управление демона Docker.
    docker ps Показывает список запущенных контейнеров. С ключом -a может показать также и остановленные контейнеры.
    docker stop Останавливает контейнер.
    docker start Запускает остановленный контейнер.
    docker kill Немедленно останавливает контейнер (не сохраняет состояние).
    docker rm Удаляет контейнер (но не удаляет данные, поэтому контейнер можно снова запустить командой run).
    docker pause Приостанавливает работу контейнера (не полностью останавливает, но приостанавливает выполнение).
    docker unpause Возобновляет приостановленный контейнер.
    docker top Показывает информацию о процессах, запущенных внутри контейнера.
    docker search Запускает поиск образов в Docker Hub.
    docker network create Создает новую сеть Docker.

    5. Команды для просмотра запущенных контейнеров

    Предположим, что у нас запущено несколько контейнеров под хост-системой на Ubuntu 22.04. Зайдя в командную строку (локально или удаленно через SSH или HTML5-консоль), вы можете посмотреть запущенные на хост-системе контейнеры Docker:

    docker ps. Показывает информацию о всех запущенных контейнерах.
    bash

    docker ps -a. Показывает информацию о всех контейнерах (запущенных и остановленных). Остановленные контейнеры можно запустить командой docker start.

    Поле STATUS в выводе команд docker ps (docker ps -a) отображает текущее состояние контейнера.

    Вот наиболее распространенные значения, которые вы можете увидеть:

    • Up. Контейнер запущен и работает исправно. Показывает время его работы с момента запуска.
    • Exited. Контейнер завершил работу. Код выхода контейнера (0 обычно означает успешное завершение).
    • Created. Контейнер создан, но еще не запущен.
    • Pending. Контейнер ожидает запуска. Это может быть вызвано недостатком ресурсов или другими проблемами.
    • Stopping. Контейнер в данный момент останавливается.
    • Restarting. Процесс перезапуска контейнера.

    Поле STATUS предоставляет краткий, но важный обзор состояния вашего контейнера, что помогает понять, как он работает, и реагировать на любые проблемы.

    Другие статьи

    28.11.2024

    OpenWebUI обновился. Что нового привнесла версия 0.4.5?

    OpenWebUI обновился до версии 0.4.5! Новые функции для RAG, групп пользователей, аутентификации, улучшенная производительность и многое другое. Узнайте, как обновиться и использовать его возможности на максимум.

    18.11.2024

    Настройка Nginx на сервере

    Как правильно установить и настроить Nginx на сервере для повышения производительности вашего сайта. Пошаговая инструкция поможет вам настроить Nginx быстро и без ошибок.

    18.11.2024

    Рейтинг быстрых VPS и VDS-серверов

    Топ-10 самых быстрых VPS и VDS-серверов: узнайте, какие серверы обеспечат максимальную производительность и скорость для ваших проектов.

    25.10.2024

    TS3 Manager: что происходит, когда додумываешь документацию

    Есть проблемы с подключением к TS3 Manager после установки на VPS? Управление сервером TeamSpeak через TS3 Manager не такое уж и простое, как кажется. Давайте решим проблемы вместе!

    07.10.2024

    Список всех кодов состояния HTTP-ответа сервера

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

    HOSTKEY Выделенные серверы в Европе, России и США Готовые решения и индивидуальные конфигурации серверов на базе процессоров AMD, Intel, карт GPU, Бесплатной защитой от DDoS-атак и безлимитный соединением на скорости 1 Гбит/с 30
    4.3 48 48
    Upload