安装docker

参考官方文档 https://docs.docker.com/install/linux/docker-ce/centos/

配置repository
  1. sudo yum install -y yum-utils \
  2. device-mapper-persistent-data \
  3. lvm2
  4. sudo yum-config-manager \
  5. --add-repo \
  6. https://download.docker.com/linux/centos/docker-ce.repo

安装docker ce
sudo yum install docker-ce docker-ce-cli containerd.io

卸载docker
sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

启动docker
#启动docker
sudo systemctl start docker
#设置开机自启
sudo systemctl enable docker
#验证
sudo docker run hello-world

安装pip

安装docker-compose
#安装
pip install docker-compose
#查看版本
docker-compose -version

安装harbor

参考文档https://www.cnblogs.com/pangguoping/p/7650014.html

下载离线安装包

历史版本: https://github.com/goharbor/harbor/releases

wget https://storage.googleapis.com/harbor-releases/release-1.7.0/harbor-offline-installer-v1.7.1.tgz
tar xvf harbor-offline-installer-v1.7.1.tgz

修改配置
cd harbor
vim harbor.cfg
通常修改hostname,邮件配置,harbor_admin_password即可

配置HTTPS

阿里云获取免费证书,并导入到/data/cert目录下 注: 导出的nginx证书是pem,需修改后缀为crt

vim harbor.cfg

ui_url_protocol = https
ssl_cert = /data/cert/harbor.crt
ssl_cert_key = /data/cert/harbor.key

示例配置(http)
## Configuration file of Harbor
# hostname设置访问地址,可以使用ip、域名,不可以设置为127.0.0.1或localhost
hostname = harbor.lazypg.com
# 访问协议,默认是http,也可以设置https,如果设置https,则nginx ssl需要设置on
ui_url_protocol = http
# mysql数据库root用户默认密码root123,实际使用时修改下
db_password = root123
max_job_workers = 3 
customize_crt = on
ssl_cert = /data/cert/server.crt
ssl_cert_key = /data/cert/server.key
secretkey_path = /data
admiral_url = NA
# 邮件设置,发送重置密码邮件时使用
email_server = smtp.exmail.qq.com
email_server_port = 465
email_username = devin@mobikok.com
email_password = 
email_from = devin <devin@mobikok.com>
email_ssl = true
email_insecure = false
# 启动Harbor后,管理员UI登录的密码,默认是Harbor12345
harbor_admin_password = lazypg.
# 认证方式,这里支持多种认证方式,如LADP、本次存储、数据库认证。默认是db_auth,mysql数据库认证
auth_mode = db_auth
# LDAP认证时配置项
#ldap_url = ldaps://ldap.mydomain.com
#ldap_searchdn = uid=searchuser,ou=people,dc=mydomain,dc=com
#ldap_search_pwd = password
#ldap_basedn = ou=people,dc=mydomain,dc=com
#ldap_filter = (objectClass=person)
#ldap_uid = uid 
#ldap_scope = 3 
#ldap_timeout = 5
# 是否开启自注册
self_registration = on
# Token有效时间,默认30分钟
token_expiration = 30
# 用户创建项目权限控制,默认是everyone(所有人),也可以设置为adminonly(只能管理员)
project_creation_restriction = everyone
verify_remote_cert = on

启动

修改完配置文件后,在的当前目录执行 ./install.sh,Harbor服务就会根据当期目录下的 docker-compose.yml开始下载依赖的镜像,检测并按照顺序依次启动各个服务

在程序目录下
#第一次初始化
./install.sh
#登入管理平台
http://harbor.lazypg.com
#Harbor容器的stop与start:
docker-compose stop/start/restart

修改docker server配置

因为docker默认使用的是https连接,而harbor默认使用http连接,所以需要修改docker配置标志insecure registry不安全仓库的主机,如图所示 docker harbor私有仓库搭建 - 图1

查看docker server配置文件
docker harbor私有仓库搭建 - 图2

vi /usr/lib/systemd/system/docker.service
#找到ExecStart,并将ExecStart=/usr/bin/dockerd -H fd://  修改为:
ExecStart=/usr/bin/dockerd --insecure-registry=harbor.lazypg.com -H fd://
#重新加载service文件
systemctl daemon-reload
#重启docker服务
systemctl restart docker
#重启harbor
docker-compose stop
docker-compose start

再次验证
docker harbor私有仓库搭建 - 图3

将image推送到私服

提前到http://harbor.lazypg.com创建仓库项目名

#镜像打标签
docker tag 镜像名:标签 私服地址/仓库项目名/镜像名:标签
#推送到私服
docker push  私服地址/仓库项目名/镜像名:标签
#从私服拉取镜像
docker pull 私服地址/仓库项目名/镜像名:标签
#示例
docker pull hello-world
docker tag hello-world harbor.lazypg.com/test/hello-world:v0.0.1
docker push harbor.lazypg.com/test/hello-world:v0.0.1
#拉取
docker pull harbor.lazypg.com/test/hello-world:v0.0.1