Kubernets基础组件 - Harbor 构建企业级Docker镜像仓库
程序员文章站
2022-04-25 15:17:04
...
Harbor 构建企业级Docker镜像仓库
1. 环境
[root@config1v etc]# free -mh
total used free shared buff/cache available
Mem: 7.6G 743M 2.8G 2.8M 4.1G 6.6G
[root@config1v etc]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
[root@config1v etc]# docker -v
Docker version 18.06.0-ce, build 0ffa825
[root@config1v etc]# docker-compose -v
docker-compose version 1.22.0, build f46880fe
2. 安装docker-compose + docker
安装docker
curl -fsSL https://get.docker.io | bash
安装docker-compose
curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
3. 安装Harbor仓库
从github上面下载
Harbor下载地址
mkdir -p /application/harbor
tar zxvf harbor.tgz -C /application/harbor
cd harbor
可以看到Harbor的目录结构,关键的配置文件就只有:
[aaa@qq.com harbor]# ls -l docker-compose.yml harbor.cfg
-rw-r--r-- 1 root root 3580 Aug 3 22:49 docker-compose.yml
-rw-r--r-- 1 root root 6682 Aug 3 23:02 harbor.cfg
修改harbor.cfg
文件配置,主要修改的地方只有几处
hostname =10.210.27.229
harbor_admin_password = aaa@qq.com
- hostname: 代表Harbor监听的地址,可以通过浏览器进行访问
- harbor_admin_password: 初始化默认admin的登陆密码
使用prepare
生成配置文件
[root@t4v harbor]# ./prepare
使用docker-compose
启动集群之前,先修改一下docker-compose的配置,Harbor
默认是在80
端口,因为服务器80
端口被占用了。所以需要修改一下端口
proxy:
image: vmware/nginx-photon:v1.5.1
container_name: nginx
restart: always
volumes:
- ./common/config/nginx:/etc/nginx:z
networks:
- harbor
ports:
- 7780:80
- 444:443
启动Harbor
,解压的时候默认有一个安装脚本
[root@t4v harbor]# ./install.sh
查看Harbor
的状态
[aaa@qq.com harbor]# docker-compose ps
Name Command State Ports
--------------------------------------------------------------------------------------------------------
harbor-adminserver /harbor/start.sh Up
harbor-db /usr/local/bin/docker-entr ... Up 3306/tcp
harbor-jobservice /harbor/start.sh Up
harbor-log /bin/sh -c /usr/local/bin/ ... Up 127.0.0.1:1514->10514/tcp
harbor-ui /harbor/start.sh Up
nginx nginx -g daemon off; Up 0.0.0.0:444->443/tcp, 0.0.0.0:7780->80/tcp
redis docker-entrypoint.sh redis ... Up 6379/tcp
registry /entrypoint.sh serve /etc/ ... Up 5000/tcp
可以通过IP+PORT
的方式访问Harbor了
登陆的用户默认是:admin
初始密码:harbor.cfg文件中定义的
如果需要调整配置文件,修改后,那么就需要执行一遍
docker-compose down
./prepare
docker-compose up -d
4. 使用Harbor
4.1 上传下载镜像
配置docker
的http
,因为安装的时候,没有选择的HTTPS
,所以需要配置
[root@t4v harbor]# echo { "insecure-registries":["10.210.27.229:7780"] }>>/etc/docker/daemon.json
[root@t4v harbor]# systemctl reload docker
登陆harbor
仓库,docker login
[root@t4v harbor]# docker login 10.210.27.229:7780
Username (admin): admin
Password:
Login Succeeded
在本地上传一个镜像,这里我们在本地的一个centos
镜像上传到仓库中
[root@t4v harbor]# docker images|grep centos
centos latest 49f7960eb7e4 8 weeks ago 200MB
# 首先给镜像打tag,tag的格式是固定的 【仓库地址】【项目名】【镜像名:TAG】
[root@t4v harbor]# docker tag centos:latest 10.210.27.229:7780/taiwei/centos:latest
[root@t4v harbor]# docker images |grep centos
10.210.27.229:7780/taiwei/centos latest 49f7960eb7e4 8 weeks ago 200MB
# 将镜像推送到Harbor上面
[root@t4v harbor]# docker push 10.210.27.229:7780/taiwei/centos
The push refers to repository [10.210.27.229:7780/taiwei/centos]
bcc97fbfc9e1: Mounted from taiwei/taiwei
latest: digest: sha256:eed5b251b615d1e70b10bcec578d64e8aa839d2785c2ffd5424e472818c42755 size: 529
在界面上可以查看
确实上传到了Harbor
仓库中了
在另外一台机器上面可以测试从Harbor
下载我们上传的centos
镜像
[aaa@qq.com etc]# docker login 10.210.27.229:7780
Username: admin
Password:
Login Succeeded
如果这里一样出现类似HTTP
请求docker的问题,使用下面的方法解决
echo { "insecure-registries":["10.210.27.229:7780"] }>>/etc/docker/daemon.json
systemctl reload docker
使用docker pull
将镜像下载下来
[root@config1v etc]# docker pull 10.210.27.229:7780/taiwei/centos
[root@config1v etc]# docker images |grep centos
10.210.27.229:7780/taiwei/centos latest 49f7960eb7e4 8 weeks ago 200MB
只是Harbor
的简单使用,还没有考虑到Harbor
的高可用,和HTTPS
的使用,以及使用域名代替IP
下一篇: Android 第三方登录