Теги, версионирование & SemVer
Тема дорожной карты · Docker & Containers
Тег Docker — это изменяемый указатель на неизменяемый дайджест образа, например myapp:1.4.2. Используйте Semantic Versioning (MAJOR.MINOR.PATCH) и плавающие алиасы (1, 1.4, latest), чтобы потребитель сам выбирал нужный уровень стабильности. Частые ошибки: latest — это просто тег и не означает «самый свежий»; автор может перевесить тег, поэтому для воспроизводимости пиньте дайджест (@sha256:...); CI не должен пушить в latest без сопутствующего иммутабельного тега-версии. Продвинутый сценарий — генерация тегов из git через docker/metadata-action.
Как это работает
Теги, версионирование & SemVer хранит и раздаёт образы. Docker Hub — дефолтный публичный registry; приватные альтернативы — Harbor (self-hosted, бесплатный), AWS ECR, Google Artifact Registry, GitHub Container Registry (ghcr.io), Yandex Container Registry. Один "registry" хостит много репозиториев; репозиторий держит много тегов + digest для одного логического образа. docker login, docker tag repo/image:tag, docker push — трио для загрузки.
Когда применять
Docker Hub — для OSS-проектов и прототипов; переходите на приватный registry, как только в образах есть проприетарный код, секреты или лицензированные зависимости. Для RF-инфраструктуры практичен Yandex CR + Harbor (rate-лимиты Hub + санкционные риски делают публичный поганым дефолтом). Подписывайте образы через cosign или Notary, когда supply chain важен. Сканирование уязвимостей (Trivy, Grype) — в CI-шаге, который пушит образ.
Типичные ошибки
Ловушки Теги, версионирование & SemVer: rate-лимиты anonymous Docker Hub в CI (100 pulls/6h на IP — легко превышаются busy-раннером — логиньтесь или используйте mirror); пуш образов с запечёнными секретами и обнаружение через недели (history образа — навсегда); нет garbage collection на self-hosted registry (storage растёт без границ); вера :latest без provenance (подписывайте + проверяйте или pull по digest).