Tech-Research WIKI

технологичные раскопки

Инструменты пользователя

Инструменты сайта


docs:docker:containers:nexus

Nexus

Имея несколько пк в локальной сети удобнее кешировать репозитории на локальном ресурсе.
Плюсом всякое бывает с санкциями и удобно иметь свое зеркало. на всякий случай.

Установка в Docker

Сперва создаем папку

  1. mkdir /storage/nexus-data

Чтобы докер смог создать в папке свои файлы нужно дать права

  1. chown 200:200 /storage/nexus-data
  1. docker run -d \
  2. --restart=always \
  3. --name nexus \
  4. -p 8081:8081 \
  5. -p 8082:8082 \
  6. -p 8083:8083 \
  7. -v /storage/nexus-data:/nexus-data \
  8. sonatype/nexus3

Вариант второй, если это личный ресурс, а железе не самое, например файлопомойка, лучше ограничить в памяти

  1. docker run -d \
  2. --restart=always \
  3. -e "INSTALL4J_ADD_VM_PARAMS=-Xms128m -Xmx512m -XX:MaxDirectMemorySize=512m -Djava.util.prefs.userRoot=/nexus-data/javaprefs" \
  4. --name nexus \
  5. -p 8081:8081 \
  6. -p 8082:8082 \
  7. -p 8083:8083 \
  8. -v /storage/nexus-data:/nexus-data \
  9. sonatype/nexus3

я не просто так пробросил 8082 и 8083 порты помимо основного 8081, там будут наши репозитории.

установка длится долгое время, нужно подождать
логи смотреть командой (nexus это идентификатор)

  1. docker logs -f nexus

Готовность будет когда появится такое сообщение

-------------------------------------------------
 
Started Sonatype Nexus OSS 3.69.0-02
 
-------------------------------------------------

Первый вход

Пароль для первого входа можно узнать двумя способами, первый это зайти в контейнер

  1. docker exec -it nexus /bin/bash
  1. cat /nexus-data/admin.password

а второй способ - локальная папка, которую прокинули

  1. cat /storage/nexus-data/admin.password

Заходим по адресу http://192.168.1.33:8081 (айпи нашего компа)

  • admin
  • пароль из файла

Далее создаем новый пароль

Docker прокси

Я провел испытания, выдернул провод из роутера, удалил образ и снова сделал докер пулл, всё успешно скачалось…

Первым делом заходим в настройки, Security/Anonymous access

Далее тут же в Security/Realms
Активируем Docker Bearer Token, если этого не сделать, то даже docker login не будет работать…

Заходим в Repositories, create

Выбираем Docker (proxy)

Далее указываем имя, включаем http порт и пишем например 8082 (ведь его мы пробросили в контейнер)
Remote storage: https://registry-1.docker.io
Docker Index - Use Docker Hub

Настройка докера

Теперь пропишем в /etc/docker/daemon.json

  1. {
  2. "insecure-registries": ["192.168.1.33:8083"],
  3. "registry-mirrors": ["http://192.168.1.33:8083"]
  4. }

Первый параметр говорит что на данное зерркало нужно ходить не по https, а по http
А второй параметр указывает наше зеркало с портом

Дальше ребутим докер и проверяем

  1. docker pull rabbitmq
  2. docker pull mysql

И смотрим в наш репозиторий

Отдельно нужно загуглить момент по кешу, его времени жизни, но к этому я вернусь позже.

/www/wiki.tech-research.ru/data/pages/docs/docker/containers/nexus.txt · Последнее изменение: 2024/07/02 18:00 — PavelB

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki