Докер на протяжении многих лет был на рынке, это ничего нового, и многие компании или разработчики много студентов назад не имеют контакта назад назад, но не многие люди, у которых есть опыт практической операции, главный акцент этой серии PRISTICE, попробую Говорите на сухих товарах, основанные на том, что я понимаю, разработанная конкретная официальная концепция может обратиться к официальному учебнику, потому что в этом руководстве в этом руководстве есть определенная зависимость от предыдущего раздела и изучает все предыдущие главы.
Навигация по этой серии руководств:
- 8 Говоря о Docker | Первый опыт использования контейнеров
- 8 Говоря о Docker | Боевые учения с изображениями
- 8 Говоря о Docker | Сетевое взаимодействие с одним узлом и несколькими контейнерами
- 8 Говоря о Docker | Контейнерное хранилище данных
- 8 Говоря о Docker | Одноузловая битва Nginx + Springboot
- 8 говорят Docker | Docker Составьте многобориемую судно
- 8 Говоря о Docker | Многоузловой бой Docker Swarm
Цель учебника:
- Узнайте, что такое гавань и зачем ее использовать
- Понять процесс строительства гавани
- Понимать основные операции гавани
Основные понятия гавани
что такое гавань
Официальная концепция: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
Пометить существующее изображение
- Проверьте существующие изображения, здесь я создал несколько изображений в предыдущем уроке.
[root@manager-node credit-facility]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
credit-facility-image latest 28948b936fac 2 days ago 130MB
- Здесь я выбираю
credit-facility-image
тег, новый тегcredit-facility:1.0
docker tag credit-facility-image:latest credit-facility:1.0
Опубликовать изображение в Harbour
- Используйте 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.
Загрузить образ на сервер
- Давайте сначала удалим образ, созданный локально, чтобы избежать путаницы в последующих операциях.
[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
- Просмотр списка локальных зеркал
[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…
Авторское право: Авторские права на эту статью принадлежат автору и сообществу
Перепечатка: Приветствуется перепечатка, но без согласия автора данное заявление должно быть сохранено, ссылка на оригинал должна быть указана в статье, в противном случае следует нести юридическую ответственность