Подешавање приватног Docker регистра на Ubuntu 22.04

Подешавање приватног Docker регистра на Ubuntu 22.04

Docker регистар је складиште слика Docker-а, које омогућава чување, дистрибуцију и управљање конфигурацијама слика. Приватни регистар се користи за безбедно складиштење слика које нису доступне јавности и за повећање контроле над приступом сликама. У овом водичу ћемо објаснити како да подесите приватни Docker регистар на Ubuntu 22.04 користећи Docker Compose.

Предности приватног Docker регистра

* Повећана безбедност: Слике у приватном регистру су безбедне од неовлашћеног приступа јер су доступне само онима који имају одговарајућа овлашћења.
* Контрола приступа: Можете контролисати ко може да приступа и модификује слике у приватном регистру одређујући дозволе за коришћење.
* Оптимизоване перформансе: Чување слика у приватном регистру може смањити време преузимања јер се слике чувају локално, а не преузимају се са јавног регистра.
* Прилагођене конфигурације: Приватни регистар омогућава прилагођене конфигурације, што вам омогућава да ускладите регистар са својим специфичним потребама.

Потребности

* Сервер који ради на Ubuntu 22.04
* Привилеговани кориснички налог
* Docker инсталиран на серверу
* Docker Compose инсталиран на серверу

Како подесити приватни Docker регистар

1. Инсталирајте Docker Compose

Ако Docker Compose још увек није инсталиран на вашем серверу, можете га инсталирати помоћу следеће команде:


sudo apt update
sudo apt install docker-compose

2. Покрените Docker регистар

Можете покренути Docker регистар користећи Docker Compose. Креирајте датотеку docker-compose.yml са следећим садржајем:


version: '3.8'

services:
registry:
image: registry:2
container_name: registry
ports:
- "5000:5000"
volumes:
- registry-data:/var/lib/registry
restart: always

У овој датотеци:

* image: наводи верзију слике Docker регистра коју ћете користити.
* container_name: наводи име контејнера за Docker регистар.
* ports: мапира порт 5000 на вашем серверу на порт 5000 унутар Docker регистра.
* volumes: мапира директоријум registry-data на вашем серверу на директоријум /var/lib/registry унутар Docker регистра. Овај директоријум се користи за складиштење података регистра.

Након што креирате датотеку docker-compose.yml, извршите следећу команду да покренете Docker регистар:


docker-compose up -d

3. Конфигуришите регистар

Подразумевано, Docker регистар користи самопотписано уверење за осигурање комуникације. Међутим, препоручује се употреба потписаног уверења издатог од поверљивог сертификационог тела (CA). За стварање потписаног уверења, пратите ове кораке:

а. Креирајте CA


openssl genrsa -out ca.key 4096
openssl req -new -x509 -days 3650 -key ca.key -out ca.crt -subj "/CN=docker-registry-ca"

б. Креирајте сертификат и кључ за регистар


openssl genrsa -out registry.key 4096
openssl req -new -key registry.key -out registry.csr -subj "/CN=docker-registry-server"
openssl x509 -req -days 3650 -CA ca.crt -CAkey ca.key -in registry.csr -out registry.crt

ц. Подесите TLS конфигурацију за регистар

Отворите датотеку registery/config.yml и додајте следећи блок конфигурације:


insecure_registries:
- "localhost:5000"

Ово ће онемогућити проверу потписа за слике преузете из вашег приватног регистра.

Затим, додајте следећи блок конфигурације да бисте навели вашу TLS конфигурацију:


https:
certificate: /certs/registry.crt
key: /certs/registry.key

Где су /certs/registry.crt и /certs/registry.key путање до вашег потписаног сертификата и приватног кључа.

д. Креирајте тајну са вашим сертификатима

Покрените контејнер регистра заустављајући га и поново покрећући са следећом командом:


docker-compose down
docker-compose up -d

Ово ће створити тајну са вашим сертификатима и аутоматски их монтирати у контејнер регистра.

Приступ приватном регистру

Сада када сте подесили приватни Docker регистар, можете да му приступате помоћу следећих корака:

* а. Додајте репозиторијум регистра у своје Docker клијентске конфигурације


docker login <registry_address>:<port> -u username -p password

Где је registry_address адреса вашег регистра, port је порт на коме ради ваш регистар, username је корисничко име за приступ регистру и password је одговарајућа лозинка.

* б. Превуците слику у приватни регистар


docker pull <image_name>:<tag>
docker tag <image_name>:<tag> <registry_address>:<port>/<namespace>/<image_name>:<tag>
docker push <registry_address>:<port>/<namespace>/<image_name>:<tag>

Где је <image_name>:<tag> име слике коју желите да превучете, <registry_address>:<port> адреса и порт вашег приватног регистра и <namespace>/<image_name>:<tag> жељени простор назива, име слике и ознака у приватном регистру.

Закључак

Подешавање приватног Docker регистра на Ubuntu 22.04 је једноставан процес који пружа бројне предности, укључујући повећану безбедност, контролу приступа и побољшане перформансе. Следећи кораке описане у овом водичу, можете лако да подесите приватни регистар и почнете да га користите за управљање вашим Docker сликама.

Често постављана питања (ФАК)

1. Које су алтернативе коришћењу Docker Compose за покретање Docker регистра?
Можете користити docker run команду за ручно покретање Docker регистра или користити Kubernetes за управљање кластером Docker регистра.

2. Како могу да управљам аутентификацијом у свом приватном Docker регистру?
Можете да користите различите механизме аутентификације, као што су basic аутентификација, аутентификација преко token-а или аутентификација преко OAuth2.

3. Како могу да ограничим приступ одређеним сликама у свом приватном регистру?
Можете да користите контролу приступа засновану на улогама (RBAC) за креирање улога и придруживање корисницима или групама тим улогама. Дозволе за приступ сликама се затим могу управљати на основу улога.

4. Могу ли да интегришем свој приватни Docker регистар са другим алатима?
Да, можете да интегришете свој приватни регистар