Docker私有仓库harbor
Docker私有仓库harbor
Harbor私有仓库介绍
Harbor 是为企业用户设计的容器镜像仓库开源项目,包括了权限管理(RBAC)、LDAP、审计、安全漏洞扫描、镜像验真、管理界面、自我注册、HA 等企业必需的功能,同时针对中国用户的特点,设计镜像复制和中文支持等功能。
官网:TP
Harbor部署
# 1.安装docker-compose
[root@db01 ~]$ yum install -y docker-compose
# 2.检查是否安装成功
[root@db01 ~]$ docker-compose version
docker-compose version 1.18.0, build 8dd22a9
docker-py version: 2.6.1
CPython version: 3.6.8
OpenSSL version: OpenSSL 1.0.2k-fips 26 Jan 2017
# 3.下载harbor安装包
[root@db01 ~]$ wget https://github.com/goharbor/harbor/releases/download/v2.3.4/harbor-offline-installer-v2.3.4.tgz
# 4.解压
[root@db01 ~]$ tar xf harbor-offline-installer-v1.9.0-rc1.tgz
# 5.修改配置文件
[root@db01 harbor]$ vim /root/harbor/harbor.yml
hostname: 10.0.0.51
harbor_admin_password: 123
# 6.安装harbor
[root@db01 harbor]$ ll
-rw-r--r-- 1 root root 619632806 Sep 4 2019 harbor.v1.9.0.tar.gz
-rw-r--r-- 1 root root 5790 Nov 18 09:48 harbor.yml
-rwxr-xr-x 1 root root 5088 Sep 4 2019 install.sh
-rw-r--r-- 1 root root 11347 Sep 4 2019 LICENSE
-rwxr-xr-x 1 root root 1748 Sep 4 2019 prepare
[root@db01 harbor]$ ./install.sh
[root@db01 /tmp/harbor]$ ll
drwxr-xr-x 3 root root 20 Nov 18 09:49 common
-rw-r--r-- 1 root root 5285 Nov 18 09:49 docker-compose.yml
-rw-r--r-- 1 root root 619632806 Sep 4 2019 harbor.v1.9.0.tar.gz
-rw-r--r-- 1 root root 5790 Nov 18 09:48 harbor.yml
-rwxr-xr-x 1 root root 5088 Sep 4 2019 install.sh
-rw-r--r-- 1 root root 11347 Sep 4 2019 LICENSE
-rwxr-xr-x 1 root root 1748 Sep 4 2019 prepare
打开电饭煲访问:http://10.0.0.51/
harbor页面不显示排错思路
1、查看日志,是否正常
2、如果日志正常,使用curl命令,是否能获取到harbor网页,
3、如果能获取到harbor网页,则证明docker启动harbor没有问题
4、宿主机到浏览器是不通的,使用telnet验证80端口是否通
5、如果不通,查看宿主机防火墙、selinux、内核转发是否开启
Harbor的使用
# harbor的启停
[root@db01 ~]$ cd harbor/
[root@db01 harbor]$ docker-compose stop
[root@db01 harbor]$ docker-compose start
[root@db01 harbor]$ docker-compose restart
# 上传镜像到harbor
需要修改镜像名称
## 命名规则:
## harbor地址/项目名称/镜像名称:标签
10.0.0.51/guanwang/centos7:v2
# docker修改镜像名称
## docker tag :重命名镜像,类似于cp,原镜像还在
[root@db01 ~]$ docker tag centos:7 centos7:v1
[root@db01 ~]$ docker tag centos:7 10.0.0.51/guanwang/centos7:v2
# 修改docker配置文件
{
"bip": "192.168.200.1/24",
"registry-mirrors": ["https://pgz00k39.mirror.aliyuncs.com"],
"insecure-registries": ["http://10.0.0.51"] # //添加harbor网页
}
# 重启docker
[root@db01 harbor]$ systemctl restart docker
# 登录harbor
[root@db01 harbor]$ docker login 10.0.0.51
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
# 推送镜像,必须先在harbor上面创建对应项目
[root@db01 harbor]$ docker push 10.0.0.51/guanwang/centos7:v2
Harbor拉镜像
# 1.修改配置文件
[root@db02 ~]$ vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://pgz00k39.mirror.aliyuncs.com"],
"insecure-registries": ["http://10.0.0.51"] # //添加harbor页面uri
}
# 2.重启docker
[root@db02 ~]$ systemctl restart docker
# 3.登录harbor认证
[root@db02 ~]$ docker login 10.0.0.51
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
# 4.拉取镜像
[root@db02 ~]$ docker pull 10.0.0.51/guanwang/centos7:v2
v2: Pulling from guanwang/centos7
Digest: sha256:dead07b4d8ed7e29e98de0f4504d87e8880d4347859d839686a31da35a3b532f
Status: Downloaded newer image for 10.0.0.51/guanwang/centos7:v2
10.0.0.51/guanwang/centos7:v2
[root@db02 ~]$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
10.0.0.51/guanwang/centos7 v2 eeb6ee3f44bd 2 months ago 204MB
自制镜像推送到Harbor
自动构建wordpress镜像
harbor创建对应项目
- MySQL镜像
# 拉取纯净版MySQL镜像
[root@db01 ~]$ docker pull mysql:5.7
# 修改MySQL镜像名称
[root@db01 ~]$ docker tag mysql:5.7 10.0.0.51/blog/wordpress_mysql:v1
# 推送镜像到 Harbor
[root@db01 ~]$ docker push 10.0.0.51/blog/wordpress_mysql:v1
- centos7镜像
# 拉取纯净版sentos7镜像
[root@db01 ~]$ docker pull sentos:7
# 工作目录下准备好需要的代码包、配置文件、脚本...
[root@db01 /Dockerfile/wordpress]$ ll
total 35264
-rw-r--r-- 1 root root 19674604 Aug 18 12:13 php.tgz
-rw-r--r-- 1 root root 256 Nov 16 19:56 proxy_params
-rw-r--r-- 1 root root 100 Nov 18 11:15 start.sh
-rw-r--r-- 1 root root 386 Nov 16 19:51 wordpress.conf
-rw-r--r-- 1 root root 16414590 Aug 28 16:21 wordpress.tgz
[root@db01 /Dockerfile/wordpress]$ vim wordpress.conf
server {
listen 80;
server_name blog.wj.com;
root /code/wordpress;
location / {
index index.php index.html;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
}
# 编写Dockerfile
[root@db01 /Dockerfile/wordpress]$ vim Dockerfile
FROM centos:7
ADD php.tgz /opt
RUN rm -fr /etc/yum.repos.d/* \
&& curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo \
&& curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo \
&& sed -i '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo \
&& sed -i '/mirrors.cloud.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo \
&& yum install -y nginx \
&& yum localinstall -y /opt/*.rpm \
&& sed -i 's#user = apache#user = nginx#g' /etc/php-fpm.d/www.conf \
&& sed -i 's#group = apache#group = nginx#g' /etc/php-fpm.d/www.conf \
&& mkdir /code
COPY wordpress.conf /etc/nginx/conf.d/wordpress.conf
COPY proxy_params /etc/nginx/proxy_params
COPY start.sh /start.sh
ADD wordpress.tgz /code/
RUN chown -R nginx.nginx /code \
&& rm -rf /code/wordpress/wp-config.php \
&& rm -rf /opt/* \
&& yum clean all
EXPOSE 80
EXPOSE 9000
CMD ["/bin/sh","/start.sh"]
# 自动构建镜像
[root@db01 /Dockerfile/wordpress]$ docker build -t nginx_php:v1 . # //如果要推送harbor,就需要改名
[root@db01 /Dockerfile/wordpress]$ docker build -t 10.0.0.51/blog/wordpress:v1 . # //推荐直接使用harbor格式镜像名称
[root@db01 /Dockerfile/wordpress]$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
10.0.0.51/blog/wordpress v1 1d0f94af80ae About a minute ago 721MB
10.0.0.51/blog/wordpress_mysql v1 8b43c6af2ad0 25 hours ago 448MB
# 推送镜像至harbor
[root@db01 /Dockerfile/wordpress]$ docker push 10.0.0.51/blog/wordpress:v1
部署项目
### 部署项目
## 创建MySQL的数据目录
[root@db02 ~]$ mkdir /data/mysql/data -p
## 创建wordpress用户数据存储目录
[root@db02 ~]$ mkdir /data/worepress/data -p
## 从harbor拉取代码准备工作
# 1.修改docker配置文件并重启
[root@db02 ~]$ vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://pgz00k39.mirror.aliyuncs.com"],
"insecure-registries": ["http://10.0.0.51"]
}
[root@db02 ~]$ systemctl restart docker
# 2.登录harbor认证用户
[root@db02 ~]$ docker login 10.0.0.51
===================================================================================================================
## 启动MySQL,自动拉取harbor镜像
docker run \
--name wordpress-mysql \
-p 3306:3306 \
-v /data/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123 \
-e MYSQL_DATABASE=wordpress \
-e MYSQL_USER=wordpress \
-e MYSQL_PASSWORD=123 \
-d 10.0.0.51/blog/wordpress_mysql:v1 \
--character-set-server=utf8 \
--collation-server=utf8_general_ci
## 启动nginx、php,自动拉取harbor镜像
docker run \
--name wordpress-nginx-php \
--link wordpress-mysql \
-p 80:80 \
-d 10.0.0.51/blog/wordpress:v1
## 检查端口
[root@db02 ~]$ netstat -lntup|grep docker
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 35026/docker-proxy
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 35310/docker-proxy
tcp6 0 0 :::3306 :::* LISTEN 35030/docker-proxy
tcp6 0 0 :::80 :::* LISTEN 35314/docker-proxy
本地做域名解析:10.0.0.51 blog.xxx.com
访问blog.xxx.com
Docker私有仓库harbor的更多相关文章
- docker 私有仓库 harbor docker-compose
c创建docker私有仓库 docker pull registry:2.1.1 mkdir /opt/registry#mkdir /var/lib/registry docker run -d - ...
- 物联网架构成长之路(44)-Docker私有仓库Harbor
0. 前言 安装docker.docker-compose,这些在我以前的博客讲过,这里就不继续说明了,有需要的可以参考我之前的博客. https://www.cnblogs.com/wunaozai ...
- 企业级Docker私有仓库Harbor
一.Harbor简介 1.Harbor介绍 Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,通过添加一些企业必需的功能特性,例如安全.标识和管理等,扩展了开源Docke ...
- 微服务探索之路03篇-docker私有仓库Harbor搭建+Kubernetes(k8s)部署私有仓库的镜像
❝ 目录: 微服务探索之路01篇.net6.0项目本地win10系统docker到服务器liunx系统docker的贯通 微服务探索之路02篇liunx ubuntu服务器部署k8s(kubernet ...
- Docker 私有仓库 Harbor registry 安全认证搭建 [Https]
Harbor源码地址:https://github.com/vmware/harborHarbort特性:基于角色控制用户和仓库都是基于项目进行组织的, 而用户基于项目可以拥有不同的权限.基于镜像的复 ...
- Docker私有仓库Harbor部署与使用
一.harbor介绍 Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器. 由下面几个组件组成: proxy:nginx前端代理,主要是分发前端页面ui访问和镜像上传和下载 ...
- docker私有仓库-harbor
简单说一下Harbor的部署,踩了几个坑,参考同事大神的配置文件,一脸懵逼的部署出来了,其中部分内容参考了网上一些大神的文档,本篇文章仅供参考学习,如有雷同,万分荣幸. 这篇文档仅限于centos7参 ...
- 菜鸟系列docker——搭建私有仓库harbor(6)
docker 搭建私有仓库harbor 1. 准备条件 安装docker sudo yum update sudo yum install -y yum-utils device-mapper-per ...
- Docker私有仓库与Harbor部署使用
Docker私有仓库与Harbor部署使用 目录 Docker私有仓库与Harbor部署使用 一.本地私有仓库 1. 下载registry镜像 2. 在daemon.json文件中添加私有镜像仓库地址 ...
- docker开源仓库Harbor部署笔记
Harbor介绍Harbor是Vmvare团队开发的开源企业级registry仓库,相比docker官方拥有更丰富的权限权利和完善的架构设计,适用大规模docker集群部署提供仓库服务.项目地址:ht ...
随机推荐
- Docker基本概念及命令
1.Docker三个重要概念:仓库(Repository).镜像(image)和容器(Container) Docker基本用法: docker 命令关键字(COMMAND) 一系列的参数 dock ...
- ElasticSearch 实现分词全文检索 - 测试数据准备
目录 ElasticSearch 实现分词全文检索 - 概述 ElasticSearch 实现分词全文检索 - ES.Kibana.IK安装 ElasticSearch 实现分词全文检索 - Rest ...
- 比 poi导入导出更好用的 EasyExcel使用小结
转载请注明出处: 官方文档: https://easyexcel.opensource.alibaba.com/docs/current/quickstart/read 1.简洁 Java解析.生成E ...
- PO、VO、DAO、BO、DTO、POJO 之间的区别
PO(Persistant Object),持久对象 这个对象是与数据库中的表相映射的Java对象. VO(Value Object),值对象 通常用于业务层之间的数据传递,和PO一样也是仅仅包含数据 ...
- 痞子衡嵌入式:Farewell, 我的写博故事2021
-- 题图:苏州盘门景区 2021年的最后一天,按惯例写个年终总结吧.感觉今年过得异常快,新冠疫情虽然得到一定程度控制,但大家似乎再难回到疫情前的生活状态.如果你尝试去回顾 2020 - 2021 这 ...
- Linux0.11源码学习(二)
Linux0.11源码学习(二) linux0.11源码学习笔记 参考资料:https://github.com/sunym1993/flash-linux0.11-talk 源码查看:https:/ ...
- RTE2021 回顾丨HDR 技术产品实践与探索
本文整理自 OPPO HDR 研发负责人熊磊,在 RTE2021 实时互联网大会上的演讲.他通过介绍 HDR 视频标准与生态.关键技术.发展方向三部分,分享了在移动端 HDR 视频的落地情况以及技术细 ...
- MyBatisPlus---DQL编程控制
MP将书写复杂的SQL查询条件进行了封装,使用编程的形式完成查询条件的组合. 一.条件查询 package com.itheima; import com.baomidou.mybatisplus.c ...
- 器学习算法(六)基于天气数据集的XGBoost分类预测
1.机器学习算法(六)基于天气数据集的XGBoost分类预测 1.1 XGBoost的介绍与应用 XGBoost是2016年由华盛顿大学陈天奇老师带领开发的一个可扩展机器学习系统.严格意义上讲XGBo ...
- PHP的序列化和反序列化
PHP序列化 什么是PHP序列化 serialize() //将一个对象转换成一个字符串 unserialize() //将字符串还原成一个对象 通过序列化与反序列化我们可以很方便的在PHP中进行对象 ...