Docker镜像仓库Harbor

本文详细介绍了如何在企业环境中搭建Harbor私有Docker镜像仓库,包括Docker和docker-compose的安装,Harbor安装包下载,自签证书生成,配置文件修改,Harbor安装与启动,以及通过浏览器访问测试。此外,还提供了如何使用Harbor上传和下载镜像的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

企业级私有镜像仓库 Harbor简介:
Harbor 是一个用于存储和分发 Docker 镜像的企业级 Registry 服务器,通过添加一些企业必需的功能特性,例如安全、标识和管理等,扩展了开源 Docker Distribution。作为一个企业级私有 Registry 服务器,Harbor 提供了更好的性能和安全。提升用户使用 Registry 构建和运行环境传输镜像的效率。Harbor 支持安装在多个 Registry 节点的镜像资源复制,镜像全部保存在私有 Registry 中,确保数据和知识产权在公司内部网络中管控。另外,Harbor 也提供了高级的安全特性,诸如用户管理,访问控制和活动审计等。Harbor 是由 VMware 中国研发团队负责开发的开源企业级 Docker Registry, 不仅解决了我们直接使用 Docker Registry 的功能缺失, 更解决了我们在生产使用 Docker Registry 面临的高可用、镜像仓库直接复制、镜像仓库性能等运维痛点。

1 安装Docker

cd /etc/yum.repos.d
wget https://download.docker.com/linux/centos/docker-ce.repo
yum install docker-ce -y
systemctl start docker
systemctl enable docker


2 安装 docker-compose

curl -L https://github.com/docker/compose/releases/download/1.18.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
docker-compose version

3 下载 Harbor 安装包

离线地址
wget https://storage.googleapis.com/harbor-releases/release-1.7.0/harbor-offline-installer-v1.7.4.tgz
在线地址
wget https://storage.googleapis.com/harbor-releases/release-1.7.0/harbor-online-installer-v1.7.4.tgz

解压:(使用离线包)

tar xf harbor-offline-installer-v1.7.4.tgz

4 自签证书

cd harbor
mkdir ssl  && cd ssl 
#存放证书使用

openssl req -x509 -new -nodes -sha512 -days 3650 \
    -subj "/C=CN/ST=PK/L=PK/O=example/OU=Personal/CN=fuck1899.com" \
    -key ca.key \
    -out ca.crt
openssl genrsa -out fuck1899.com.key 4096


openssl req -sha512 -new \
   -subj "/C=CN/ST=PK/L=PK/O=example/OU=Personal/CN=fuck1899.com" \
   -key fuck1899.com.key \
   -out fuck1899.com.csr 

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

[alt_names]
DNS.1=fuck1899.com
DNS.2=fuck1899.com
DNS.3=hellozz
EOF

openssl x509 -req -sha512 -days 3650 \
   -extfile v3.ext \
   -CA ca.crt -CAkey ca.key -CAcreateserial \
   -in fuck1899.com.csr \
   -out fuck1899.com.crt

openssl x509 -inform PEM -in fuck1899.com.crt -out fuck1899.com.cert
修改配置文件
vim harbor.cfg
修改一下行
hostname = fuck1899.com
ui_url_protocol = https
ssl_cert = ./ssl/fuck1899.com.crt
ssl_cert_key = ./ssl/fuck1899.com.key
主意:如果不需要做自签证的证书只需要修改一下两个配置
customize_crt = off
hostname = fuck1899.com

保存退出
将证书文件拷贝到docker目录下使我们可以通过命令行提交镜像不受自签证书认证影响
mkdir /etc/docker/certs.d/fuck1899.com -p
cp harbor/ssl/fuck1899.com.cert /etc/docker/certs.d/fuck1899.com/
cp harbor/ssl/fuck1899.com.key /etc/docker/certs.d/fuck1899.com/
cp harbor/ssl/ca.crt /etc/docker/certs.d/fuck1899.com/

如果是其他主机命令行提交或者登陆到这个harbor服务器,那么也需要将这个证书文件拷贝到自己主机/etc/docker/certs.d/fuck1899.com下 没有这个目录可以手动创建

是配置生效
./prepare

5 安装

./install.sh
[Step 3]: checking existing instance of Harbor ...
Creating registry ... done
Creating harbor-core ... done
[Step 4]: starting Harbor ...
Creating harbor-portal ... done
Creating nginx ... done
Creating redis ... 
Creating harbor-adminserver ... 
Creating harbor-db ... 
Creating registryctl ... 
Creating registry ... 
Creating harbor-core ... 
Creating harbor-portal ... 
Creating harbor-jobservice ... 
Creating nginx ... 

✔ ----Harbor has been installed and started successfully.----

Now you should be able to visit the admin portal at https://fuck1899.com. 
For more details, please visit https://github.com/goharbor/harbor .

说明已经安装成功

通过docker-compose查看都运行了一些什么镜像

docker-compose ps
       Name                     Command               State                       Ports                    
-----------------------------------------------------------------------------------------------------------
harbor-adminserver   /harbor/start.sh                 Up                                                   
harbor-core          /harbor/start.sh                 Up                                                   
harbor-db            /entrypoint.sh postgres          Up      5432/tcp                                     
harbor-jobservice    /harbor/start.sh                 Up                                                   
harbor-log           /bin/sh -c /usr/local/bin/ ...   Up      127.0.0.1:1514->10514/tcp                    
harbor-portal        nginx -g daemon off;             Up      80/tcp                                       
nginx                nginx -g daemon off;             Up      0.0.0.0:443->443/tcp, 0.0.0.0:4443->4443/tcp,
                                                              0.0.0.0:80->80/tcp                           
redis                docker-entrypoint.sh redis ...   Up      6379/tcp                                     
registry             /entrypoint.sh /etc/regist ...   Up      5000/tcp                                     
registryctl          /harbor/start.sh                 Up  

6 浏览器访问测试

访问签需要添加本机 host 文件,因为这个域名是不真实的

linux 添加hosts 文件

47.244.163.105  fuck1899.com

windows添加 hosts 文件

C:\Windows\System32\drivers\etc

编辑hosts 添加:

服务器IP   fuck1899.com

0159f97fab6f931348b638b599b0aa7b1e3.jpg

但是显示是不安全的

 查看证书是否有我们颁发

94a938fbab2a0ecba6f2a423dc166901ccf.jpg

上图显示证书有我们颁发

 官方解释

请注意,即使我们通过自签名CA签署证书并将CA部署到上述位置,某些浏览器仍可能出于安全原因显示有关证书颁发机构(CA)未知的警告。这是因为自签名CA本质上不是受信任的第三方CA. 您可以自己将CA导入浏览器以解决警告。

7 登陆

默认密码为
admin  Harbor12345
如果你没有修改过的话

linux 端登陆使用

docker login yourdomain.com

windows直接打开地址

5d678623f1cade97c49c657ebdd0995cbb2.jpg

8 创建项目等

创建项目
      1  公开
      2 不公开
创建用户

用户关联项目
      1 添加成员
      2 角色授权


9 harbor 上传下载镜像

第一步登陆  输入用户名和密码

docker login fuck1899.com
面交互方式登陆:
docker login -u用户名 -p密码 镜像服务器

第二步 给镜像打tag

docker tag oddrationale/docker-shadowsocks fuck1899.com/sundezhao/ss:v1
#oddrationale/docker-shadowsocks 需要大tag的镜像  
#fuck1899.com  harbor服务器
#sundezhao     项目名称
#ss:v1         tag

第三步 push镜像

docker push fuck1899.com/sundezhao/ss:v1

第四步 查看已经push的镜像

37e40f7e2552390e2ca27784df2a44b52ea.jpg

第五步 pull 镜像

docker pull fuck1899.com/sundezhao/ss:v1

结束语:

至此Harbor已经搭建完成并可以使用,对于企业来说私有仓库是必须有的,快来测试一下把!

转载于:https://my.oschina.net/54188zz/blog/3019588

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值