私有化容器仓库Harbor

自建镜像参考harbor

官网地址 https://github.com/goharbor/harbor/releases
参考地址 https://www.cnblogs.com/tianzhendengni/p/14071523.html

安装Docker-compose

1、安装
yum install -y docker-compose
2、查看版本
docker-compose --version

下载

1、下载地址
https://github.com/goharbor/harbor/releases
2、解压
tar -zxf harbor-offline-installer-v2.4.1.tgz -C /usr/local/

配置

1、mkdir -p /data/certs
   cd /data/certs

2、配置ssl
    参考地址 https://zhuanlan.zhihu.com/p/234918875
    root@eb7023:/data/certs>openssl genrsa -out ca.key 4096

    http://harbor23.com这里是我harbor仓库的域名,即harbor配置文件中hostname的值,也可以写ip
    root@eb7023:/data/certs>openssl req -x509 -new -nodes -sha512 -days 3650  -subj "/CN=harbor23.com"  -key ca.key  -out ca.crt
    root@eb7023:/data/certs>ll
    total 8
    -rw-r--r-- 1 root root 1797 Sep 11 14:20 ca.crt
    -rw-r--r-- 1 root root 3243 Sep 11 14:18 ca.key

    创建私钥
    root@eb7023:/data/certs>openssl genrsa -out server.key 4096

    生成证书签名请求
    root@eb7023:/data/certs>openssl req  -new -sha512  -subj "/CN=harbor23.com"  -key server.key  -out server.csr
    root@eb7023:/data/certs>ll
    total 16
    -rw-r--r-- 1 root root 1797 Sep 11 14:20 ca.crt
    -rw-r--r-- 1 root root 3243 Sep 11 14:18 ca.key
    -rw-r--r-- 1 root root 1590 Sep 11 14:24 server.csr
    -rw-r--r-- 1 root root 3243 Sep 11 14:20 server.key

    生成harbor仓库主机的证书

    root@eb7023:/data/certs>

cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]
DNS.1=harbor23.com
EOF

    root@eb7023:/data/certs>
    root@eb7023:/data/certs>ll
    total 20
    -rw-r--r-- 1 root root 1797 Sep 11 14:20 ca.crt
    -rw-r--r-- 1 root root 3243 Sep 11 14:18 ca.key
    -rw-r--r-- 1 root root 1590 Sep 11 14:24 server.csr
    -rw-r--r-- 1 root root 3243 Sep 11 14:20 server.key
    -rw-r--r-- 1 root root  231 Sep 11 14:48 v3.ext

    生成harbor仓库主机的证书
    root@eb7023:/data/certs>openssl x509 -req -sha512 -days 3650 -extfile v3.ext -CA ca.crt -CAkey ca.key -CAcreateserial -in server.csr -out server.crt
    Signature ok
    subject=/CN=harbor23.com
    Getting CA Private Key
    root@eb7023:/data/certs>ll
    total 28
    -rw-r--r-- 1 root root 1797 Sep 11 14:20 ca.crt
    -rw-r--r-- 1 root root 3243 Sep 11 14:18 ca.key
    -rw-r--r-- 1 root root   17 Sep 11 14:48 ca.srl
    -rw-r--r-- 1 root root 1830 Sep 11 14:48 server.crt
    -rw-r--r-- 1 root root 1590 Sep 11 14:24 server.csr
    -rw-r--r-- 1 root root 3243 Sep 11 14:20 server.key
    -rw-r--r-- 1 root root  231 Sep 11 14:48 v3.ext

    到目前为止所有需要的证书文件就生成完毕了,下面需要一些配置

    下面要修改harbor的配置文件 修改以下配置项
    cd /usr/local/harbor/
    mv /usr/local/harbor/harbor.yml.tmpl harbor.yml
    root@eb7023:/data/certs>vim /usr/local/harbor/harbor.yml 
    hostname: harbor23.com
    https:
    port: 443
    certificate: /data/certs/server.crt
    private_key: /data/certs/server.key

    TODO 接下来就可重启以下harbor仓库了,注意这里要CD到harbor解压目录
    #导入配置
    ./prepare
    #安装
    ./install.sh
    ##停止当前运行的harbor
    docker-compose down -v
    ##后台运行的harbor
    docker-compose up -d


    为docker配置harbor认证
    将server证书cp到docker所在的机器固定目录中

    #笔者这里的certs.d是已经存在的,如果不存在需要mkdir
    mkdir -p /etc/docker/certs.d/harbor23.com     
    root@eb7023:/data/certs>ll
    total 28
    -rw-r--r-- 1 root root 1797 Sep 11 14:20 ca.crt
    -rw-r--r-- 1 root root 3243 Sep 11 14:18 ca.key
    -rw-r--r-- 1 root root   17 Sep 11 14:48 ca.srl
    -rw-r--r-- 1 root root 1830 Sep 11 14:48 server.crt
    -rw-r--r-- 1 root root 1590 Sep 11 14:24 server.csr
    -rw-r--r-- 1 root root 3243 Sep 11 14:20 server.key
    -rw-r--r-- 1 root root  231 Sep 11 14:48 v3.ext

    root@eb7023:/data/certs>cp server.crt  /etc/docker/certs.d/harbor23.com/server.crt
   
    这里我的docker和harbor是在同一台机器上的,如果是其他机器也复制crt文件即可
    root@eb7023:/data/certs>scp server.crt root@eb7045:/etc/docker/certs.d/harbor23.com/server.crt
    root@eb7045's password:
    server.crt                                    100% 1830     2.1MB/s   00:00

    如果是windows的话 C:\ProgramData\Docker\certs.d\harbor23.com 目录下放server.crt

    3 #重新查看证书过期日期(这次是十年)
    root@harbor:/data/harbor/certs# openssl x509 -in /data/harbor/certs/ca.crt -noout -dates
    
    4、需改/etc/hosts 将ip和域名添加起来(可能需要)

3、安装
cd /usr/local/harbor/
./install.sh

✔ ----Harbor has been installed and started successfully.----  (出现代表成功)

启动查看

必须保证docker-compose启动,不然可能出现 harbor 核心服务不可用
cd /usr/local/harbor
1、查看
docker-compose ps
2、启动关闭
docker-compose start
docker-compose stop
3、编写开机启动
echo "docker-compose start" >> /etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local

nginx扩展

可以加nginx反代
cat /etc/nginx/conf.d/harbor.conf
server {    
listen       80;
server_name  harbor.od.com;
# 避免出现上传失败的情况
client_max_body_size 1000m;
location / {
proxy_pass http://127.0.0.1:180;  #180是harbor的端口号
}
}

测试harbor

1、配置docker(那个docker的服务器有就在那个里加)
不加下面配置报错(Get "https://harbor23.com/v2/": dial tcp 192.168.0.2:443: connect: connection refused)

cat /etc/docker/daemon.json
{
“insecure-registries”:[“harbor23.com”]
}

systemctl daemon-reload
systemctl restart docker
2、先拉取一个nginx
docker pull nginx
3、加标签
docker tag nginx:latest harbor23.com/public/nginx:skv1    (标签是域名+项目名+镜像版本)
4、登录
docker login -u admin  http://harbor23.com  输入密码
5、推送
docker push harbor23.com/public/nginx:skv1
6、拉取
docker pull harbor23.com/public/nginx:skv1
7、推出登录
docker logout

外网访问

修改harbor所在的服务器docker配置

1、修改docker配置
vi /lib/systemd/system/docker.service
找到包含ExecStart的这行,添加如下内容:
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock 
2375端口为docker远程服务端口,包含了docker可视化工具portainer,以及远程上传镜像的功能。

2、vi /etc/docker/daemon.json 上面已经做了
# 添加harbor镜像地址
{
"insecure-registries": ["172.28.152.101"]
}

windows idea 访问 详情参考 https://blog.csdn.net/An1090239782/article/details/111316025

1、安装docker destop
2、如果是windows的话 C:\ProgramData\Docker\certs.d\harbor23.com 目录下放server.crt证书
3、修改C:\Windows\System32\drivers\etc\hosts 指向harbor23.com域名
4、配置docker destop setting 修改 docker engine 配置增加
    "insecure-registries": [
        "harbor23.com"
    ],

docker-desktop配置

微信公众号,需要的话就关注下我~

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值