Доступ и управление контейнерами

DockerDockerBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

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

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

Давайте приступим и начнем овладевать искусством управления контейнерами Docker!


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker/ContainerOperationsGroup -.-> docker/run("Run a Container") docker/ContainerOperationsGroup -.-> docker/ps("List Running Containers") docker/ContainerOperationsGroup -.-> docker/stop("Stop Container") docker/ContainerOperationsGroup -.-> docker/rm("Remove Container") docker/ContainerOperationsGroup -.-> docker/exec("Execute Command in Container") docker/ContainerOperationsGroup -.-> docker/logs("View Container Logs") subgraph Lab Skills docker/run -.-> lab-389192{{"Доступ и управление контейнерами"}} docker/ps -.-> lab-389192{{"Доступ и управление контейнерами"}} docker/stop -.-> lab-389192{{"Доступ и управление контейнерами"}} docker/rm -.-> lab-389192{{"Доступ и управление контейнерами"}} docker/exec -.-> lab-389192{{"Доступ и управление контейнерами"}} docker/logs -.-> lab-389192{{"Доступ и управление контейнерами"}} end

Запуск контейнера

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

Задания

Ваши задачи:

  1. Запустить контейнер с именем my-container на основе образа nginx.
  2. Просмотреть журналы контейнера my-container.

Требования

  • Использовать команду docker run для запуска контейнера.
  • Использовать команду docker logs для просмотра журналов контейнера.
  • Выполнять все операции в директории /home/labex/project.

Пример

После успешного выполнения этого шага вы должны увидеть запущенный контейнер при использовании команды docker ps. Вывод должен быть похож на следующий:

CONTAINER ID   IMAGE     COMMAND                  CREATED          STATUS          PORTS     NAMES
3a7d9f642a7f   nginx     "/docker-entrypoint.…"   12 seconds ago   Up 11 seconds   80/tcp    my-container

Этот вывод подтверждает, что ваш контейнер Nginx запущен и готов обслуживать веб-контент.

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

✨ Проверить решение и практиковаться

Остановка контейнера

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

Задания

Ваша задача:

  1. Остановить контейнер с именем my-container.

Требования

  • Использовать команду docker stop для остановки контейнера.
  • Выполнять все операции в директории /home/labex/project.

Пример

После успешной остановки контейнера вы можете использовать команду docker ps -a для просмотра всех контейнеров, включая остановленные. Вывод должен быть похож на следующий:

CONTAINER ID   IMAGE     COMMAND                  CREATED         STATUS                      PORTS     NAMES
3a7d9f642a7f   nginx     "/docker-entrypoint.…"   2 minutes ago   Exited (0) 10 seconds ago             my-container

Обратите внимание, как статус my-container изменился на "Exited", что означает, что контейнер был успешно остановлен.

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

✨ Проверить решение и практиковаться

Выполнение команд в контейнере

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

Задания

Ваши задачи:

  1. Запустить контейнер с именем my-shell-container на основе образа ubuntu. Контейнер должен оставаться запущенным в фоновом режиме.
  2. Выполнить команду echo "Hello World" внутри контейнера my-shell-container.

Требования

  • Использовать команду docker run для запуска контейнера.
  • Убедиться, что контейнер остается активным после запуска.
  • Использовать команду docker exec для выполнения команды внутри контейнера.
  • Выполнять все операции в директории /home/labex/project.

Подсказка

Контейнеры на основе образа ubuntu завершают работу сразу после запуска, если не указана команда с длительным выполнением. Чтобы сохранить контейнер в активном состоянии, попробуйте запустить такую команду, как sleep infinity при запуске контейнера. Например:

docker your-command sleep infinity

Пример

После запуска контейнера вы можете использовать команду docker ps, чтобы убедиться, что он запущен. Вывод должен быть похож на следующий:

CONTAINER ID   IMAGE     COMMAND            CREATED          STATUS          PORTS     NAMES
1a2b3c4d5e6f   ubuntu    "<command>"        30 seconds ago   Up 29 seconds             my-shell-container

При выполнении команды echo внутри контейнера вы должны увидеть следующий вывод:

Hello World

Это показывает, что вы успешно выполнили команду внутри запущенного контейнера.

Отличная работа! Теперь вы знаете, как взаимодействовать с запущенным контейнером, выполняя команды внутри него. Этот навык открывает новые возможности для управления и обслуживания контейнеров. В последнем шаге мы научимся очищать ресурсы, удаляя ненужные контейнеры.

✨ Проверить решение и практиковаться

Удаление контейнера

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

Задания

Ваша задача:

  1. Остановить и удалить контейнер с именем my-shell-container.

Требования

  • Использовать команду docker stop для остановки контейнера.
  • Использовать команду docker rm для удаления контейнера.
  • Выполнять все операции в директории /home/labex/project.

Пример

После выполнения этого шага вы можете использовать команду docker ps -a, чтобы убедиться, что контейнер my-shell-container был удален. Вы больше не должны видеть его в списке контейнеров:

CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES

Это означает, что вы успешно удалили контейнер из своей системы.

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

✨ Проверить решение и практиковаться

Итог

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

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

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

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