8 докладов о Docker | 2 минуты на создание частного зеркального склада

Docker

Докер на протяжении многих лет был на рынке, это ничего нового, и многие компании или разработчики много студентов назад не имеют контакта назад назад, но не многие люди, у которых есть опыт практической операции, главный акцент этой серии PRISTICE, попробую Говорите на сухих товарах, основанные на том, что я понимаю, разработанная конкретная официальная концепция может обратиться к официальному учебнику, потому что в этом руководстве в этом руководстве есть определенная зависимость от предыдущего раздела и изучает все предыдущие главы.

Навигация по этой серии руководств:

Цель учебника:

  • Узнайте, что такое гавань и зачем ее использовать
  • Понять процесс строительства гавани
  • Понимать основные операции гавани

Основные понятия гавани

что такое гавань

Официальная концепция:Harbour — это реестр образов контейнеров с открытым исходным кодом, который защищает образы с помощью элементов управления доступом на основе ролей, сканирует образы на наличие уязвимостей и подписывает образы как доверенные. Как инкубационный проект CNCF, Harbour обеспечивает соответствие требованиям, производительность и совместимость, чтобы помочь вам последовательно и безопасно управлять образами на платформах облачных вычислений, таких как Kubernetes и Docker.

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

Для получения более подробной информации вы можете просмотретьОфициальная документация порта

Почему

Студенты, которые следовали моим предыдущим руководствам, должны почувствовать это. Предыдущий проект Springboot должен каждый раз создавать образ на сервере. Когда мне нужно использовать этот образ на нескольких серверах, мне приходится создавать его на каждом сервере повторно. сервис промежуточного хранилища, помогающий нам управлять этими изображениями, чтобы все серверы могли совместно использовать этот файл изображения? Роль Harbour заключается в том, чтобы помочь нам управлять образом, используя распределенную архитектуру, чтобы мы могли получить файл образа, который мы создали, с любого сервера. Потом кто-то спрашивает, есть ли у нас ужеdocker hubилиdocker hubЭто удаленные репозитории? Действительно, но когда нам нужно создать несколько частных зеркальных репозиториев и мы не хотим выставлять проекты компании на всеобщее обозрение, Harbour очень полезен, точно так же, как многие компании также создают частные нексусные серверы в своих компаниях для управления пакетами приложений внутри. компания.


Построить зеркальный склад Harbour

скачать

Перейдите на github, чтобы выбрать одинharborскачать релизную версиюhttps://github.com/goharbor/harbor/releases

загрузить на сервер

Загрузите его на свой Linux-сервер, я буду использовать узел менеджера, созданный в предыдущей главе.

[root@manager-node harbor]# ls
common.sh              harbor.yml  LICENSE
harbor.v1.10.1.tar.gz  install.sh  prepare

Выше приведен распакованный файл приложения гавани.

Изменить конфигурацию гавани

Измените файл конфигурации гавани гавань.yml

#设置域名
hostname: 192.168.101.11

#设置http参数
# http related config
http:
  # port for http, default is 80. If https enabled, this port will redirect to https port
  port: 8090
  
#设置管理员密码
harbor_admin_password: evan123

#屏蔽https
#https:
  # https port for harbor, default is 443
 # port: 443

Имя хоста изменено выше, чтобы быть IP-адресом моей виртуальной машины, а порт установлен по умолчанию.80Замените порт на8090, и изменил пароль администратора наevan123. Нужно обратить внимание, я заблокировал здесьhttps, если вам нужно открытьhttps, вам необходимо настроить сертификат и ключ в указанном месте

Включить доступ к Docker Http

По умолчанию Docker не поддерживает http-доступ к реестру, в противном случае, если вы используете docker для доступа к службе гавани позже, будет сообщено о следующей ошибке:

http: server gave HTTP response to HTTPS client

Это нужно изменить в первую очередь/etc/docker/daemon.jsonконфигурации, добавьте следующую конфигурацию

{
  "insecure-registries" : ["192.168.101.11:8090"]
}

перезапустить службу докера

systemctl restart docker

Запустите приложение Harbour

если неDockerокружающая обстановка,harborошибка начнется

[root@manager-node harbor]# sh install.sh 

[Step 0]: checking if docker is installed ...

Note: docker version: 19.03.7

[Step 1]: checking docker-compose is installed ...

Note: docker-compose version: 1.25.0

[Step 2]: loading Harbor images ...
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

нужно сначала установитьDockerа такжеdocker-composeКомпоненты, я не буду говорить больше здесь, вы можете обратиться к руководству по установке в предыдущей главе.

После запуска Docker выполнитеinstall.shавтоматически завершит установку

[root@manager-node harbor]# sh install.sh 
...
Creating network "harbor_harbor" with the default driver
Creating harbor-log ... done
Creating harbor-portal ... done
Creating registry      ... done
Creating redis         ... done
Creating harbor-db     ... done
Creating registryctl   ... done
Creating harbor-core   ... done
Creating nginx             ... done
Creating harbor-jobservice ... done
✔ ----Harbor has been installed and started successfully.----

Выше показано, что установка прошла успешно

Посетите приложение Harbour

Введите ip и порт, которые мы настроили выше в браузере192.168.101.11:8090, ты увидишьharborстраница авторизации

Войти в гавань

Здесь используйте пароль, который мы определили выше, чтобы войти в систему.

  • учетная запись -admin
  • пароль -evan123


Создайте свой первый проект Harbour

Создать проект

нажмитеNewОн войдет в диалоговое окно создания проекта, введите имя проекта здесь, я выбираю уровень доступа здесьpublic

Использование Docker для входа в Harbour

Перед использованием Harbour войдите в службу Harbour в среде докеров.

[root@manager-node harbor]# docker login 192.168.101.11:8090
Username: admin
Password: 
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

Пометить существующее изображение

  1. Проверьте существующие изображения, здесь я создал несколько изображений в предыдущем уроке.
[root@manager-node credit-facility]# docker images
REPOSITORY                            TAG                              IMAGE ID            CREATED             SIZE
credit-facility-image                 latest                           28948b936fac        2 days ago          130MB
  1. Здесь я выбираюcredit-facility-imageтег, новый тегcredit-facility:1.0
docker tag credit-facility-image:latest credit-facility:1.0

Опубликовать изображение в Harbour

  1. Используйте IP-адрес Harbour и ранее созданное имя проекта.credit-facilityчтобы публиковать
[root@manager-node harbor]# docker push 192.168.101.11:8090/credit-facility/credit-facility-image
The push refers to repository [192.168.101.11:8090/credit-facility/credit-facility-image]
21f243c9904f: Pushed 
edd61588d126: Pushed 
9b9b7f3d56a0: Pushed 
f1b5933fe4b5: Pushed 
latest: digest: sha256:86a6289143d0a8a4cc94880b79af36416d07688585f8bb1b09fd4d50cd166f46 size: 1159

Как видно из приведенных выше результатов, мы успешно загрузили изображение на склад Harbour.

Загрузить образ на сервер

  1. Давайте сначала удалим образ, созданный локально, чтобы избежать путаницы в последующих операциях.
[root@manager-node harbor]# docker image rm 192.168.101.11:8090/credit-facility/credit-facility-image:latest 
Untagged: 192.168.101.11:8090/credit-facility/credit-facility-image:latest
Untagged: 192.168.101.11:8090/credit-facility/credit-facility-image@sha256:86a6289143d0a8a4cc94880b79af36416d07688585f8bb1b09fd4d50cd166f46
  1. Просмотр списка локальных зеркал
[root@manager-node harbor]# docker images
REPOSITORY                            TAG                              IMAGE ID            CREATED             SIZE

Теперь нет зеркал локально

3. Вытащите зеркало из репозитория Harbour

[root@manager-node harbor]# docker pull 192.168.101.11:8090/credit-facility/credit-facility-image:latest
latest: Pulling from credit-facility/credit-facility-image
Digest: sha256:86a6289143d0a8a4cc94880b79af36416d07688585f8bb1b09fd4d50cd166f46
Status: Downloaded newer image for 192.168.101.11:8090/credit-facility/credit-facility-image:latest
192.168.101.11:8090/credit-facility/credit-facility-image:latest

Зеркало успешно вытащено

4. При проверке локального списка зеркал просмотра

[root@manager-node harbor]# docker images
REPOSITORY                                                  TAG                              IMAGE ID            CREATED             SIZE
192.168.101.11:8090/credit-facility/credit-facility-image   latest                           28948b936fac        2 days ag

Наш образ был успешно установлен локально, поэтому, даже если в будущем мы сменим сервер, мы можем в любой момент вытащить образ из репозитория Harbour, не полагаясь на локальный сервер.


автор:Evan Leung

Источник:Талант /user/125749…

Авторское право: Авторские права на эту статью принадлежат автору и сообществу

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