Лінійка

Docker Registry Локальні налаштування зберігання

Docker Registry Локальні налаштування зберігання

У цій статті ми покажемо, як налаштувати Реєстр Docker Як їх приватний дикер. Реєстр Docker може використовуватися для зберігання та обміну зображеннями Docker. Окремо ми покажемо, як налаштувати автентифікацію для доступу до реєстру Docker.

Давайте подивимось, з чого складається зображення Docker. Зображення або зображення складаються з шарів, які накладаються один на одного. Коли ми збираємо контейнер із зображення, кожна команда створює новий шар, який накладається на попереднє. Коли контейнер запускається, всі шари зображення на основі якого контейнер зібраний для читання, і сам контейнер для запису. На основі контейнера ви також можете створити нове зображення.

Для цього ви можете виконати команду:

Sudo docker feeck

Цю команду ми беремо верхній рівень контейнера, ту, яка доступна для запису, і перетворює його на шар для читання.

Давайте спробуємо запустити контейнер ObsionBox, створити там файл і створимо нове зображення на основі цього контейнера.

  1. Запустіть контейнер на основі стандартного зображення Зайнята скринька і підключитися до віртуальної консолі. Більш детально, основні команди для роботи з Docker описані в попередній статті: # Sudo docker run -it obsionbox sh
  2. Створіть файл всередині контейнера і залиште віртуальну консоль контейнера: # echo "тест" >> 1.TXT
    # Вихід
  3. Щоб дізнатись ідентифікатор запущеного контейнера, вам потрібно виконати: # Sudo docker ps -a Висновок буде приблизно таким:

    Виходячи з виходу, ви можете отримати ідентифікатор контейнера 4Fe2A4798DD0.

    Команда контейнера команди Creed Ports Ports Names 4Fe2A4798DD0 Winshobbox "ZSH" 11 хвилин тому створений 0C58C418BC01 Oinsurebox "11 хвилин CRETED 5123105938C0 OILESSBOX"/BUS "/BUS"/BUS "/BUS"
  4. Ми робимо командну команду: # Sudo docker feem 4fe2a4798dd0 mybusybox: v1
    SHA256: 83CA3512880377A9FD03FD5CCBFD441B10EA71671CE72EAA645128425

    Після ідентифікатора контейнера назва нового зображення та тега передається.

У відповідь команда поверне вам хеш створеного зображення. Щоб побачити інформацію про зображення, виконайте команду:

# Sudo Docker Image Inpect 83CA3512880377A9FD03FD5CCBFD441B10EA71671CE72EAAOAOS645128425

На закінчення ми отримаємо інформацію про створене зображення.

[  "Id": "sha256:83ca3512880377a9fd03fd5cc80cbfd441b10ea71671ace0a72eeaa645128425", "RepoTags": [ "mybusybox:v1" ], "RepoDigests": [], "Parent": "sha256:22667f53682a2920948d19c7133ab1c9c3f745805c14125859d20cede07f11f9", "Comment": "", "Created ":" 2021-02-16T18: 29: 58.408214348Z "," Контейнер ":" 4fe2a4798ddc3d9ae54f18dc8db9bf5d0ed3bdfc2a73eae9515186 ", -------------- 

Ви можете подивитися, які команди були виконані при складанні зображення. Для цього в консолі виконайте команду:

Судо Докер Історія Mybusybox: v1

Висновок буде таким. Цей скріншот показує, які команди призвели до створення нових шарів на зображенні.

Зображення, створене за розміром 83CA35128803 3 дні тому 0B 22667F53682A 2 тижні тому /Sh -C #(NOP) CMD ["SH"] 0b 2 тижні тому /Sh -Sh #(NOP) Додати файли 1.23 Мб

Ми коротко розглянули пристрій Image Docker. Ця інформація буде корисною для розуміння механізмів роботи реєстру Докера.

Налаштування та запуск реєстру Docker

Реєстр Docker - Це інструмент, зберігання та обмін зображеннями Docker. Його зображення можна завантажити та запустити з офіційного сховища Докер Хаб.

Для запуску реєстру Docker виконайте в консолі:

# Sudo docker run -d -p 5000: 5000 -start = завжди -реєстр реєстру: 2

Ця команда завантажує Реєстр і запустіть контейнер на порту 5000 (Ключ -p 5000: 5000). Цей контейнер буде запущений автоматично на початку Docker.

В мінімальній конфігурації ми запустили наш приватний аналог Докер Хаб. Давайте спробуємо надіслати своє зображення до новоствореного сховища. Для цього нам потрібно проте проте -зображення. Візьмемо для прикладу зображення, яке ми створили в останній статті. Або ви можете використовувати будь -яке інше зображення:

# Sudo docker tag microsevice_v1: 5000/microsevice_v1

За допомогою цієї команди ми додали тег для локального зображення. Формат тегів:

: post/:

У моєму випадку це буде:

# Sudo docker tag microsevice_v1 192.168.0.19: 5000/microsevice_v1

Ви можете вказати Localhost: 5000, Але тоді ви не зможете виконати це зображення з іншого комп'ютера в мережі. Ви також можете вказати ім'я хоста, якщо у вас є DNS.

Після завершення:

# Sudo docker push 192.168.0.19: 5000/microsevice_v1

Висновок консолі буде чимось подібним:

Поштовх стосується сховища [192.168.0.19: 5000/microsevice_v1] отримати https: // 192.168.0.19: 5000/V2/: HTTP: Сервер дав HTTP -відповідь клієнту HTTPS

Утиліта Docker очікує, що Реєстр буде працювати над захищеним з'єднанням HTTPS. Ви можете дозволити підключення до незахищеного протоколу, для файлу конфігурації демона Docker, вам потрібно додати наступний рядок:

# Sudo nano/etc/docker/deemon.Json

"Небезпечний-майор": ["192.168.0.19: 5000 "]

Потім перезапустіть демона Docker.

# Sudo systemctl перезавантажити docker

Спробуйте команду Push ще раз.

Висновок буде приблизно таким:

Поштовх стосується сховища [192.168.0.19:5000/microsevice_v1] e547e1a2483f: Layer already exists efda78b6f2ad: Layer already exists 8c41c444e844: Layer already exists 042a80566ff4: Layer already exists 151a914ab9a4: Layer already exists be340e26398b: Layer already exists d7994f7c0aa0: Layer already exists 0bd71a837902: Layer already exists 13cb14c2acd3: Layer already Існує останній: Дайджест: SHA256: 0ae5b4cf9e0f6891b83ef62beb6a97247fc9bd1476fea834b781e Розмір: 2203

Ваше зображення повинно успішно перейти до вашого приватного сховища.

Щоб побачити список зображень у сховищі, ви можете використовувати Curl або браузер:

# Curl -x get http: // 192.168.0.19: 5000/v2/_catalog

Тепер ви можете створити Доккефіл і вкажіть як джерело зображення вашого приватного сховища.

Доккефіл

З 192.168.0.19: 5000/microsevice_v1 cmd ["uvicorn", "-host", "0.0.0.0 "," Main: App "]

Запустіть збірку зображення:

# Sudo docker build .

Надсилання контексту збірки Docker Daemon 794.6 КБ Крок 1/2: З 192.168.0.19: 5000/microsevice_v1 ---> de81735cd2c9 Крок 2/2: cmd ["uvicorn", "--host", "0.0.0.0 "," Main: App "] ---> Запуск у 126EDF70FB82 Видалення проміжного контейнера 126EDF70FB82 ---> 906F2DF00D0C Успішно побудований 906F2DF00D0D0D0D0D0D0D0D0D0D0D

Видно, що зображення, витягнуте з місцевого сховища, і контейнер зібрався.

Те саме можна зробити за командою Run, якщо вам просто потрібно запустити контейнер, і не використовувати його як основу.

Sudo docker run -d 192.168.0.19: 5000/microsevice_v1

Ця команда може бути виконана на будь -якому іншому комп'ютері в мережі, і тим самим ми надали простий механізм передачі зображень Docker всередині мережі. Реєстр Docker дозволяє автоматизувати процес розгортання та їх обмін під час розробки команди.

Налаштування авторизації в реєстрі Docker

Реєстр Docker підтримує декілька способів випуску, але в цій статті ми розглянемо просту базову аутентифікацію.

Для початку встановіть утиліту для створення пароля:

Sudo apt Встановіть apache2-utils

Потім створіть папку для зберігання налаштувань та DockkerFile.

# mkdir -p ~/docker -major/auth/
# Cd ~/docker-major/auth/

Щоб генерувати пароль, дотримуйтесь:

# HTPASSWD -BC Реєстр.Пароль Docker -Adm

Де Docker-dm - Це ім'я користувача (воно може бути змінено на довільне), ключ Це шифрування примусового пароля Bcrypt, Шлях і назва створеного файлу.

Новий пароль: повторно натисніть на новий пароль: додавання пароля для користувача Docker -adm

Утиліта вимагатиме пароля та підтвердження, після чого він створить файл

Реєстр.Пароль.

Перейдіть до рівня вище в папці ~/docker-major/

# Cd ~/docker-major/

Запустіть Докер-Сеежиторію з такими змінними навколишнього середовища:

Docker run -d -d 5000: 5000 -e registy_auth = htpasswd -e registry_auth_htpasswd_realm = register -e registry_auth_htpasswd_path/реєстр.Пароль -e registy_storage_filesystem_rootdirectory =/data -v "$ pwd/data:/data" -v "$ pwd/auth:/auth" -реєстр реєстру: 2

Ключі Дозвольте передати змінні контейнерного середовища.

Команда довга, краще скопіювати його у текстовий файл або в SH Script. Приклад сценарію, ви можете взяти сюди

Ключ -v Потрібно кинути каталог з автомобіля -господаря до контейнера. Наш приклад вказує на те, що каталог "$ Pwd/auth" - де $ pwd - поточний каталог, з якого запуск + Авт буде встановлений у контейнері в каталозі /Auth. Аналогічно, другий ключ -v.

Висновок на консоль після виконання команди:

Вершник був створений з хехом: 6f430176572dfeca6e81be763206ea35d182facacd27ca932822b523d8906a

Якщо ви бачите наступну помилку:

Docker: Відповідь про помилку від демона: конфлікт. Назва контейнера "/Реєстр" Alriedy використовується контейнером "6f430176572dfeca6e81be763206ea35d1827ca9e7322b523d8906a". Ви повинні зняти (або перейменувати) цей контейнер, щоб мати можливість повторно використовувати це ім’я. Див. 'Docker Run -Help'.

У цьому випадку контейнер вже запущений (ми запустили його на самому початку роботи з Docker Registry). Ви можете зупинити його і зняти контейнер за допомогою команди:

# Sudo docker reg register && sudo docker rm реєстр

Тепер ви можете повторити запуск реєстру.

Щоб перевірити розетку, перейдіть на адресу:

http: // 192.168.0.19: 5000/v2/_catalog

У вікні потрібно вказати вхід та пароль, який був вказаний при створенні файлу Реєстр.Пароль.

Якщо ви виконаєте аутентифікацію, вміст сховища Docker відображатиметься у вікні браузера.

Наше сховище порожнє.

Якщо ви виконаєте команду Штовхнути , Раніше зазначено, одне зображення з’явиться в реєстрі:

Ім'я користувача: Пароль Docker-DM: Попередження! Ваш пароль буде зберігатися незамиканням в/home/devel/.Docker/config.Json. Налаштуйте помічник довіри, щоб видалити це попередження. Див. Https: // docs.Докер.Com/двигун/довідка/командна лінія/вхід/#ввійшов

Надалі ми будемо використовувати реєстр для автоматизації розгортання послуг у Kubernetes.

Як зробити знімок екрана на Android
Більшість комп’ютерів знають, як зробити зображення екрана в ОС Windows. Для цього просто натисніть клавішу PRNTSCRN на ПК або FN + PRTSCN на ноутбуці...
Як витягнути зображення з файлу профілю-маси Accountpicture у Windows 10
Ви можете встановити будь -яке зображення популярного формату як шпалери, контакту або профілю користувача, але зворотна процедура може бути проблемат...
Як зробити резервну копію реєстру в Windows 10
Реєстр Windows - Це нервовий центр ОК. Якщо він пошкоджений або, що ще гірше, вилучено, вся система припинить функціонування. Щоб запобігти такому сце...