Docker 部署 Harbor 私有镜像仓库

589人浏览 / 0人评论

参考:

http://t.csdn.cn/8xNnt

https://blog.csdn.net/qq_40378034/article/details/90752212

https://www.cnblogs.com/tianzhendengni/p/14071523.html

# 前提:docker、docker-compose
# 自定义数据目录
  mkdir /data/harbor
cd /data/harbor
mkdir data log

# 下载
wget https://github.com/goharbor/harbor/releases/download/v2.3.1/harbor-offline-installer-v2.3.1.tgz

# 解压
tar -zxvf harbor-offline-installer-v2.3.1.tgz

# 个人单服务器使用不用配置秘钥,注释掉https的内容,不然后面如果添加SSL证书会有冲突
# 创建服务器证书密钥文件harbor.key
openssl genrsa -des3 -out harbor.key 2048
## 输入密码fzai123,确认密码,自己随便定义,但是要记住,后面会用到。

# 创建服务器证书的申请文件harbor.csr
openssl req -new -key harbor.key -out harbor.csr
## 输入密钥文件的密码, 然后一路回车

# 备份一份服务器密钥文件
cp harbor.key harbor.key.org

# 去除文件口令
openssl rsa -in harbor.key.org -out harbor.key
## 输入密钥文件的密码

# 创建一个自当前日期起为期十年的证书 harbor.crt
openssl x509 -req -days 3650 -in harbor.csr -signkey harbor.key -out harbor.crt

# 修改配置文件
cd harbor
cp harbor.yml.tmpl harbor.yml
vim harbor.yml

# 将hostname改成本机IP或域名,不要用localhost,127.0.0.1或0.0.0.0,冒号后面都有一个空格
hostname: 192.168.0.88
# http可以指定任意端口
http:
  port: 80
# 配置https的端口,只能使用443端口,更改证书路径,证书路径为刚刚生成的https证书的实际路径
https:
  port: 443
  certificate: /data/harbor/harbor.crt
  private_key: /data/harbor/harbor.key
# 修改后台管理密码
harbor_admin_password: fzai123
# harbor的内部数据库密码
database:
  password: fzai123
# 修改harbor数据存储路径与日志存储路径,目录要先创建好并赋予777权限
data_volume: /data/harbor/data
# 修改日志存放路径,默认路径为/var/log/harbor
log:
  local:
    location: /data/harbor/log

# 安装harbor
./install.sh

# 测试
访问 http://192.168.0.88
账号、密码 admin、12345

# 要让docker可以访问harbor,需要将harbor域名或IP设置为docker的受信任仓库,修改配置文件 /etc/docker/daemon.json ,增加docker受信任IP或域名(如果没有daemon.json直接在对应目录下新建)。
vim  /etc/docker/daemon.json
{
    "insecure-registries": ["192.168.0.88:80"]
}

# 修改/usr/lib/systemd/system/docker.service文件
## 将
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock 
## 修改为
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --insecure-registry=192.168.0.88

# 配置ca证书登录
https://blog.csdn.net/Oscrazy/article/details/112986271
# 拷贝https证书文件harbor.crt到 /etc/docker/certs.d/serverIp 文件夹。每个docker都要拷贝证书文件。
mkdir -p /etc/docker/certs.d
mkdir -p /etc/docker/certs.d/192.168.0.88
cp /data/harbor/harbor.crt  /etc/docker/certs.d/192.168.0.88/ca.crt
## 注意,拷贝过去的证书文件名为 ca.crt 

# 重启docker
systemctl daemon-reload
systemctl restart docker

# 重启harbor
./prepare
docker-compose down
docker-compose up -d

# 在harbor中新建项目:qingpi
# 查看镜像
docker images -a | grep nginx-photon
# 登录(80端口不用加端口号,其他端口要加)
docker login 192.168.0.88 -u admin -p 12345
## 如果部署harbor的机器中docker无法登录,其他机器能登录,在部署的机器中执行:vim /etc/hosts ,添加:内网ip 域名
# 给镜像打标签(80端口不用加端口号,其他端口要加)
docker tag goharbor/nginx-photon:v2.3.1 192.168.0.88/qingpi/goharbor/nginx-photon:v1
# 上传镜像到harbor
docker push 192.168.0.88/qingpi/goharbor/nginx-photon:v1
# 删除镜像(本地)
docker rmi 192.168.0.88/qingpi/goharbor/nginx-photon:v1
# 从仓库中拉取镜像
docker pull 192.168.0.88/qingpi/goharbor/nginx-photon:v1

全部评论