Ответ
Команда docker run создает и запускает новый контейнер из образа. Для его конфигурации используются флаги. Наиболее важные из них:
--name <имя>: Присваивает контейнеру понятное имя для удобства управления.-dили--detach: Запускает контейнер в фоновом (detached) режиме. Терминал освобождается, а контейнер продолжает работать.-p <порт_хоста>:<порт_контейнера>: Пробрасывает порт с хост-машины на порт внутри контейнера. Например,-p 8080:80сделает приложение, работающее на 80 порту контейнера, доступным по адресуlocalhost:8080.-v <путь_на_хосте>:<путь_в_контейнере>: Монтирует директорию (volume) с хоста внутрь контейнера. Это позволяет сохранять данные даже после удаления контейнера или делиться файлами между хостом и контейнером.-e <КЛЮЧ>=<ЗНАЧЕНИЕ>: Устанавливает переменную окружения внутри контейнера. Часто используется для передачи настроек, паролей или ключей API.--rm: Автоматически удаляет контейнер после его остановки. Удобно для временных задач и скриптов.--network <сеть>: Подключает контейнер к указанной Docker-сети, позволяя ему взаимодействовать с другими контейнерами в той же сети по именам.--restart <политика>: Устанавливает политику перезапуска контейнера в случае его остановки или сбоя. Основные значения:no(по умолчанию),on-failure,unless-stopped,always.
Пример комплексной команды:
# Запускаем контейнер с базой данных PostgreSQL
docker run --name my-postgres -d
-e POSTGRES_PASSWORD=supersecret
-p 5432:5432
-v /my/local/data:/var/lib/postgresql/data
--restart unless-stopped
postgres:14
Эта команда:
- Создаст контейнер с именем
my-postgres. - Запустит его в фоновом режиме (
-d). - Установит пароль для суперпользователя через переменную окружения (
-e). - Сделает базу данных доступной на порту
5432хоста (-p). - Будет хранить все данные в локальной директории
/my/local/data(-v). - Настроит автоматический перезапуск, если он не был остановлен вручную (
--restart). - Использует официальный образ
postgresверсии14.