Ответ
Основная команда для запуска контейнера — docker run. Однако в реальной DevOps-практике я редко запускаю контейнеры вручную. Вместо этого я использую оркестраторы (Kubernetes) или сервисы запуска (Docker Compose). Вот контекст для каждого подхода:
-
Базовый запуск (для тестирования образа):
docker run -d --name test-nginx -p 8080:80 nginx:alpine-d(detached): Запуск в фоне.--name: Присвоение имени для последующего управления (docker stop test-nginx).-p 8080:80: Проброс порта с хоста на контейнер.
-
Запуск с переменными окружения и томами (ближе к продакшену):
docker run -d --name my-app -e DATABASE_URL=postgres://user:pass@host/db -v /host/path/config:/app/config my-registry/app:latest -
Практика в DevOps: Прямой
docker runне используется для рабочих нагрузок. Вместо этого:- Локальная разработка: Используется
docker-compose up, который читает конфигурацию изdocker-compose.yml. - Продакшен: Контейнеры запускаются через Kubernetes, где желаемое состояние описывается в YAML-манифестах (Deployment, StatefulSet). Команда
kubectl apply -f deployment.yamlпредпочтительнее, так как обеспечивает отказоустойчивость, масштабирование и управление жизненным циклом.# deployment.yaml для Kubernetes apiVersion: apps/v1 kind: Deployment spec: template: spec: containers: - name: app image: my-registry/app:latest env: - name: DATABASE_URL valueFrom: secretKeyRef: name: app-secrets key: database-urlТаким образом,
docker run— это низкоуровневая команда, в то время как в DevOps фокус смещен на декларативное управление контейнерами с помощью оркестраторов.
- Локальная разработка: Используется