Найти в Дзене
I N F A N D S E C

Руководство по Docker: Основные команды и управление ресурсами

Docker предоставляет набор команд для управления контейнерами и образами через терминал. Общий синтаксис команд выглядит так: docker [команда] [объект] [опции] [аргументы]. Примеры базовых операций: docker container run название_контейнера. docker build -t myimage .. Контейнеры — ключевые единицы в Docker. Основные команды: docker create -it ubuntu bash (создаёт контейнер с Ubuntu и подключает терминал). docker start 49920 (по ID) или docker start testing_docker (по имени). docker run -it ubuntu (создаёт и сразу запускает контейнер). docker stop timeweb. docker kill 14490. docker restart testing_timeweb. docker ps -a. docker logs --follow my_container (логи в реальном времени). docker inspect --format='{{.NetworkSettings.IPAddress}}' my_container. docker rm my_container. docker rm -f my_container (удаляет даже работающий контейнер). docker container prune. docker rmi myimage:latest. docker rmi -f myimage. docker image prune. docker volume rm my_volume. docker volume p
Оглавление

1. Общие сведения об основных командах Docker

Docker предоставляет набор команд для управления контейнерами и образами через терминал. Общий синтаксис команд выглядит так:

docker [команда] [объект] [опции] [аргументы].

Примеры базовых операций:

  • Запуск контейнера:
docker container run название_контейнера.
  • Создание образа из Dockerfile:
docker build -t myimage ..

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

Контейнеры — ключевые единицы в Docker. Основные команды:

2.1 Создание и запуск

  • docker create: Создаёт контейнер из образа без его запуска.
docker create -it ubuntu bash (создаёт контейнер с Ubuntu и подключает терминал).

  • docker start: Запускает остановленный контейнер.
docker start 49920 (по ID) или docker start testing_docker (по имени).

  • docker run: Комбинирует create и start.
docker run -it ubuntu (создаёт и сразу запускает контейнер).

2.2 Остановка и перезапуск

  • docker stop: Останавливает контейнер, отправляя сигнал SIGTERM.
docker stop timeweb.

  • docker kill: Принудительно останавливает контейнер через SIGKILL.
docker kill 14490.

  • docker restart: Перезапускает контейнер.
docker restart testing_timeweb.

2.3 Просмотр информации

  • docker ps или docker container ls: Показывает запущенные контейнеры.
    Опция
    -a выводит все контейнеры, включая остановленные.
docker ps -a.

  • docker logs: Отображает логи контейнера.
docker logs --follow my_container (логи в реальном времени).

  • docker inspect: Выводит детальную информацию о контейнере в формате JSON.
docker inspect --format='{{.NetworkSettings.IPAddress}}' my_container.

3. Удаление ресурсов

3.1 Контейнеры

  • docker rm: Удаляет остановленный контейнер.
docker rm my_container.

  • Принудительное удаление:
docker rm -f my_container (удаляет даже работающий контейнер).

  • Очистка всех остановленных контейнеров:
docker container prune.

3.2 Образы

  • docker rmi: Удаляет образ.
docker rmi myimage:latest.

  • Принудительное удаление:
docker rmi -f myimage.

  • Удаление неиспользуемых образов:
docker image prune.

3.3 Тома

  • docker volume rm: Удаляет том.
docker volume rm my_volume.

  • Очистка неиспользуемых томов:
docker volume prune.

3.4 Сети

  • docker network rm: Удаляет сеть.
docker network rm my_network.

Очистка неиспользуемых сетей:

docker network prune.

4. Управление образами

4.1 Сборка и публикация

  • docker build: Собирает образ из Dockerfile.
docker build -t myapp:latest ..

  • docker push: Загружает образ в реестр (например, Docker Hub).
docker push myrepo/myapp:latest.

4.2 Загрузка образов

  • docker pull: Скачивает образ из реестра.
docker pull ubuntu:20.04.

4.3 Просмотр информации

  • docker images: Показывает список локальных образов.
docker images --filter "dangling=false".

  • docker history: Отображает слои образа.
docker history myimage.

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

  • Системная информация:
    docker version — показывает версии клиента и сервера.
  • Авторизация:
    docker login — вход в Docker Hub.
  • Глобальная очистка:
    docker system prune --all --volumes — удаляет все неиспользуемые ресурсы.

6. Практические сценарии

6.1 Развертывание веб-приложения

  1. Создайте Dockerfile:dockerfileCopyFROM python:3.9
WORKDIR /app
COPY . .
RUN pip install -r requirements.txt
CMD ["python", "app.py"]

2. Соберите образ:

docker build -t mywebapp ..

3. Запустите контейнер:

docker run -d -p 80:5000 mywebapp.

6.2 Обновление контейнера

  1. Остановите старый контейнер:
    docker stop old_container.
  2. Удалите его:
    docker rm old_container.
  3. Загрузите обновлённый образ:
    docker pull myimage:latest.
  4. Запустите новый контейнер:
    docker run -d -p 80:5000 myimage:latest.

7. Docker Swarm vs Kubernetes

  • Docker Swarm: Встроенная оркестрация для управления кластерами.
    Прост в настройке.
    Автоматическое распределение нагрузки.
    Подходит для небольших проектов.
  • Kubernetes (K8s): Мощная система с расширенными функциями.
    Поддерживает автоматическое масштабирование, самовосстановление.
    Идеален для сложных и распределённых приложений.

8. Ответы на вопросы

Разница между docker run и docker create

  • docker create: Только создаёт контейнер, не запуская его.
  • docker run: Создаёт и сразу запускает контейнер.
    Когда использовать:
  • create — если нужна предварительная настройка перед стартом.
  • run — для быстрого запуска без дополнительных шагов.

Итог:
Docker предоставляет гибкие инструменты для управления контейнерами, образами и другими ресурсами. Регулярная очистка и правильное использование команд позволяют поддерживать систему в оптимальном состоянии. Для масштабирования проектов выбирайте Docker Swarm для простоты или Kubernetes для сложных задач.