docker hub 可以当做镜像仓库来管理镜像,但是出于安全性和效率的考虑,就选择了私有仓库docker registry 和 harbor, docker registry没有操作界面,我是直接放弃了,这里就说一下官方提供到的harbor
踩了两天的坑,现在简单来记录一下
一、部署harbor
分三步,第一步安装docker,第二步安装docker-compose ,第三步安装 harbor
1. 安装docker
安装docker ,不要装到podman了:
yum -y install docker-ce
运行docker
systemctl start docker
查看docker 版本
docker --version
2. 安装docker-compose
安装 epel-release:
yum install epel-release
安装pip,注意,这里我的版本是centos8.4,要安装pip3,低版本的安装pip:
centos8及以上版本:
yum install -y python3-pip
其他版本:
yum install -y python-pip
安装 docker-compose:
centos8及以上版本:
pip3 install --upgrade pip
pip3 install docker-compose
其他版本:
pip install docker-composea
安装Git:
yum install git
查看docker-compose版本号
docker-compose -version
3. 安装harbor
官网去下载离线版,
如果嫌官网比较慢的话,可以来csdn这里下载,啊哈哈哈...,地址:https://download.csdn.net/download/qq_38109220/43639433
然后xshell上传到Linux上: https://github.com/goharbor/harbor/releases
上传到指定文件夹,解压,进入到harbor文件夹
cd /home/testmdir/barbor
修改配置文件harbor.yml,如果没有这个文件就先复制
docker cp harbor.yml.tmpl harbor.yml
配置文件harbor.yml:
hostname: 192.168.168.230.130 (本机IP地址)
port: 6666 (自定义端口号,不要使用80端口)
harbor_admin_password: 123456789(admin登录密码)
注释掉https相关的东西
启动准备文件
./prepare
安装harbor
./install.sh
成功了之后查看是否运行成功
docker ps
然后访问就行了,不知道为什么,我这里只能通过IE和360浏览器才能访问,其他浏览器都访问不到,可能是该网址存在不安全加密,其他浏览器自动屏蔽了
这里就访问:192.168.230.130:6666(上文配置文件配置的ip和端口)
账号:admin
密码:123456789(上文配置的密码)
部署就OK了
二、基本使用
使用其实很简单,harbor上面有操作命令提示,直接按照提示,复制下来修改就行了
创建镜像仓库
进入镜像仓库之后这里推送命令可以看到如果推送的示例
这里成员或者机器人可以设置拥有当前镜像仓库的权限,添加成员必须要在用户管理里面存在的成员,机器人账户是生成的,可以设置账户到期时间
ok,创建完镜像,准备工作做好之后就可以在docker上面操作
在这里之前,设置一下harbor的地址,方便识别,如果没有这个文件就手动创建
vim /etc/docker/daemon.json
检查一下设置成功没有
docker info
1. 要先上传,肯定要先登录
docker login 192.168.230.130:6666(harbor地址) -u admin(账号) -p 123456789(密码)
2. 登录成功之后,把需要push的文件进行tag标记一下,这里标签后的镜像一定要按照harbor的格式进行标签,上面harbor有提示命令,可以复制下来更改
docker tag testweb:v1(需要标签的镜像) 192.168.230.130:6666/tweb/testweb:f1(标签后的镜像)
3. 成功之后可以看到该镜像新增了一个新的标签
4. 标签弄好之后就可以上传到我们的harbor上面了
docker push 192.168.230.130:6666/tweb/testweb:f1
这个时候就可以看到harbor上面多了一个镜像
5. 下载镜像
上图有个拉取命令按钮,直接点击一下,就自动复制了,输入pull命令
docker pull 192.168.230.130:6666/tweb/testweb@sha256:73eb9ad59a62734e650f581f4262da75bc8bbed3859d1ad90edea63ba3dd937f
如果Pull下来的镜像Tag为<none>的话,直接通过镜像ID重新设置tag就行了
docker tag 545f8dd7624f 192.168.230.130:6666/tweb/testweb:f1