部署私有仓库
下载harbor-2.1.0安装包
下载离线安装包:
$ wget https://github.com/goharbor/harbor/releases/download/v2.1.0-rc2/harbor-offline-installer-v2.1.0-rc2.tgz
解压!
修改harbor.yml配置信息
1$ cp harbor.yml.tmpl harbor.yml 2$ vim harbor.yml 3# 如何选择hostname: 4 # 1、如果所有机器都在一个局域网,那么配置内网IP或域名(确保域名已做内网解析或绑定hosts) 5 # 2、如果机器跨网络,只能通过公网访问,那么配置本机外网IP或域名 6hostname: hub.adaixuezhang.cn 7http: 8 port: 80 9# ssl证书需要购买,如果自己制作可参考:https://goharbor.io/docs/2.0.0/install-config/configure-https/ 或 http://www.zhangblog.com/2020/05/13/docker06/ 10https: 11 port: 443 12 certificate: /etc/ssl/certs/nginx/hub.adaixuezhang.cn_bundle.crt 13 private_key: /etc/ssl/certs/nginx/hub.adaixuezhang.cn.key 14 15# harbor admin用户密码 16harbor_admin_password: Harbor12345 17# 数据库配置信息 18database: 19 password: root123 20 max_idle_conns: 50 21 max_open_conns: 1000 22 23# 数据存储路径 24data_volume: /data/harbor/data 25# 日志存放目录 26location: /var/log/harbor
安装
$ ./install.sh

安装并启动成功!
访问Harbor
hub.adaixuezhang.cn- 用户名:admin
- 密码:Harbor12345

管理harbor进程
如果修改了Harbor的配置文件harbor.yml,因为Harbor是基于docker-compose服务编排的,我们可以使用docker-compose命令重启Harbor。
未修改配置文件,重启Harbor命令:docker-compose start | stop | restart
当然个人建议:如果修改了harbor.yml文件,那么停止使用docker-compose down,启动使用 ./install.sh 。
1$ docker-compose help 2Define and run multi-container applications with Docker. 3 4Usage: 5 docker-compose [-f <arg>...] [options] [--] [COMMAND] [ARGS...] 6 docker-compose -h|--help 7 8Options: 9 -f, --file FILE Specify an alternate compose file 10 (default: docker-compose.yml) 11 -p, --project-name NAME Specify an alternate project name 12 (default: directory name) 13 -c, --context NAME Specify a context name 14 --verbose Show more output 15 --log-level LEVEL Set log level (DEBUG, INFO, WARNING, ERROR, CRITICAL) 16 --no-ansi Do not print ANSI control characters 17 -v, --version Print version and exit 18 -H, --host HOST Daemon socket to connect to 19 20 --tls Use TLS; implied by --tlsverify 21 --tlscacert CA_PATH Trust certs signed only by this CA 22 --tlscert CLIENT_CERT_PATH Path to TLS certificate file 23 --tlskey TLS_KEY_PATH Path to TLS key file 24 --tlsverify Use TLS and verify the remote 25 --skip-hostname-check Don't check the daemon's hostname against the 26 name specified in the client certificate 27 --project-directory PATH Specify an alternate working directory 28 (default: the path of the Compose file) 29 --compatibility If set, Compose will attempt to convert keys 30 in v3 files to their non-Swarm equivalent (DEPRECATED) 31 --env-file PATH Specify an alternate environment file 32 33Commands: 34 build Build or rebuild services 35 config Validate and view the Compose file 36 create Create services 37 down Stop and remove containers, networks, images, and volumes 38 events Receive real time events from containers 39 exec Execute a command in a running container 40 help Get help on a command 41 images List images 42 kill Kill containers 43 logs View output from containers 44 pause Pause services 45 port Print the public port for a port binding 46 ps List containers 47 pull Pull service images 48 push Push service images 49 restart Restart services 50 rm Remove stopped containers 51 run Run a one-off command 52 scale Set number of containers for a service 53 start Start services 54 stop Stop services 55 top Display the running processes 56 unpause Unpause services 57 up Create and start containers 58 version Show version information and quit
为docker指定镜像仓库
1# 增加配置 "insecure-registries" 2$ vim /etc/docker/daemon.json 3{ 4 "exec-opts": ["native.cgroupdriver=systemd"], 5 "log-driver": "json-file", 6 "log-opts": { 7 "max-size": "100m" 8 }, 9 "insecure-registries": ["https://hub.adaixuezhang.cn"] 10} 11$ systemctl restart docker
为harbor服务器配置镜像加速
1# 配置 registry-mirrors ,使用国内镜像源 2$ vim /etc/docker/daemon.json 3{ 4 "exec-opts": ["native.cgroupdriver=systemd"], 5 "log-driver": "json-file", 6 "log-opts": { 7 "max-size": "100m" 8 }, 9 "insecure-registries": ["https://hub.adaixuezhang.cn"], 10 "registry-mirrors": [ 11 "https://hub-mirror.c.163.com", 12 "https://mirror.baidubce.com" 13 ] 14}
harbor仓库使用测试
-
在服务器上登陆
1$ docker login https://hub.adaixuezhang.cn 2username: admin 3password: Harbor12345 4Login Succeeded! -
push镜像:
1# 拉去第三方镜像 2$ docker pull wangyanglinux/myapp:v1 3 4# 打tag:见harbor参考 推送命令 5$ docker tag wangyanglinux/myapp:v1 hub.adaixuezhang.cn/library/myapp:v1 6 7# push到私有仓库 8$ docker push hub.adaixuezhang.cn/library/myapp:v1 -
使用镜像
1$ kubectl run nginx-deployment --image=hub.adaixuezhang.cn/library/myapp:v1 --port=80 --replicas=1 2 3# 查看状态 4$ kubectl get pod -o wide 5NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES 6nginx-deployment 1/1 Running 0 14m 10.244.2.3 host3 <none> <none>
成功!