[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-ci-cd-kak-ispolzovat-nexus-v-kachestve-docker-registry":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":20,"progress":21,"seo":22},210,"kak-ispolzovat-nexus-v-kachestve-docker-registry",6,"ci-cd","CI\u002FCD","🔄","Как использовать Nexus в качестве Docker Registry?","**Nexus в роли Docker Registry** — это конфигурация Nexus Repository Manager для хранения, проксирования и раздачи Docker-образов, что позволяет организации иметь приватный Docker Registry без отдельной инфраструктуры.\n\n> Представьте, что Docker Hub — это публичная библиотека, а вам нужна корпоративная. Вместо того чтобы разворачивать отдельное здание (standalone Docker Registry), вы добавляете новый отдел (Docker-репозиторий) к уже существующей библиотеке (Nexus). Читатели (разработчики) могут и хранить свои книги (hosted), и заказывать публичные (proxy) — через одно окно (group).\n\n### Настройка в Nexus\n\nДля полноценной работы создаются три Docker-репозитория (каждый на своём HTTP-порту):\n\n| Репозиторий | Тип | HTTP-порт | Назначение |\n|---|---|---|---|\n| `docker-hosted` | Hosted | 8083 | Хранение собственных образов |\n| `docker-hub-proxy` | Proxy | 8084 | Кэширование образов из Docker Hub |\n| `docker-group` | Group | 8085 | Единый URL для скачивания (объединяет hosted + proxy) |\n\n**Почему отдельные порты?** Docker Registry API требует выделенного хоста\u002Fпорта для корректной работы команд `docker push` и `docker pull`.\n\n### Использование Docker с Nexus\n\n```bash\n# Авторизация в Nexus Docker Registry\ndocker login nexus.company.com:8083 -u admin -p admin123\n\n# Тегирование образа для Nexus\ndocker tag my-app:1.0.0 nexus.company.com:8083\u002Fmy-app:1.0.0\n\n# Загрузка образа в Nexus (push — через hosted-порт 8083)\ndocker push nexus.company.com:8083\u002Fmy-app:1.0.0\n\n# Скачивание образа из Nexus (pull — через group-порт 8085)\ndocker pull nexus.company.com:8085\u002Fmy-app:1.0.0\n```\n\n### Использование в Jenkinsfile\n\n```groovy\nstage('Build & Push Docker Image') {\n    steps {\n        script {\n            def image = docker.build(\"nexus.company.com:8083\u002Fmy-app:${env.BUILD_NUMBER}\")\n            docker.withRegistry('https:\u002F\u002Fnexus.company.com:8083', 'nexus-docker-credentials') {\n                image.push()\n                image.push('latest')\n            }\n        }\n    }\n}\n```\n\n### Настройка Docker daemon\n\nЕсли Nexus использует HTTP (без TLS), необходимо добавить в `\u002Fetc\u002Fdocker\u002Fdaemon.json`:\n\n```json\n{\n    \"insecure-registries\": [\"nexus.company.com:8083\", \"nexus.company.com:8085\"]\n}\n```\n\n**В production рекомендуется использовать HTTPS** с валидным сертификатом — это устраняет необходимость `insecure-registries` и обеспечивает безопасную передачу данных.\n\n### Вывод\n\nИспользование Nexus как Docker Registry — удобное решение «два в одном»: не нужно разворачивать и поддерживать отдельный registry. Nexus предоставляет единый интерфейс управления для Maven-артефактов, Docker-образов и других форматов.\n\n> **На собеседовании:** часто спрашивают, зачем нужны разные порты для Docker-репозиториев в Nexus. Ответ: Docker Registry API требует выделенного хоста\u002Fпорта. Push выполняется через hosted-порт, pull — через group-порт (объединяет hosted и proxy).","","middle",[15,16,17,18,8,19],"nexus","docker-registry","docker-hosted","docker-proxy","docker",[],null,{"title":23,"description":24,"ogTitle":25,"ogDescription":26,"keywords":27,"schemaAnswer":34,"featuredSnippetReady":35},"Как использовать Nexus в качестве Docker Registry — Gymterview","Настройка Nexus как Docker Registry: hosted, proxy и group репозитории, docker login\u002Fpush\u002Fpull, интеграция с Jenkins, daemon.json для HTTP.","Nexus как Docker Registry: настройка и использование — Gymterview","Создание Docker-репозиториев в Nexus (hosted, proxy, group), docker login\u002Fpush\u002Fpull, интеграция с Jenkins Pipeline.",[28,17,18,29,30,31,32,33],"Nexus Docker Registry","docker login Nexus","docker push Nexus","Docker v2 API","daemon.json insecure-registries","Jenkins Docker Nexus","Настройка в Nexus: создать hosted Docker-репозиторий (docker-hosted, порт 8083), proxy для Docker Hub (docker-hub-proxy, порт 8084), group (docker-group, порт 8085). Использование: docker login nexus:8083, docker tag my-app nexus:8083\u002Fmy-app:1.0, docker push nexus:8083\u002Fmy-app:1.0, docker pull nexus:8085\u002Fmy-app:1.0. В Jenkins: docker.build() + docker.withRegistry() с credentials. Для HTTP — настройка insecure-registries в daemon.json.",true]