【docker】docker学习(2)——docker私有仓库Harbor部署、上传下载镜像至harbor仓库实战

简介:docker有三个核心,仓库(register)、镜像(image)、容器(container),仓库我们一般使用私有库harbor;镜像我们使用Dockerfile自己打包/或者使用docker save和docker load 打包镜像,导入镜像;容器(手动就是docker run ,多容器的话那就docker-compose,但是他是单机容器编排,后面再细说)

今天和大家分享的是docker仓库-Harbor的实战部署

Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,通过添加一些企业必需的功能特性,例如安全、标识和管理等,扩展了开源Docker Distribution。作为一个企业级私有Registry服务器,Harbor提供了更好的性能和安全。提升用户使用Registry构建和运行环境传输镜像的效率。Harbor支持安装在多个Registry节点的镜像资源复制,镜像全部保存在私有Registry中, 确保数据和知识产权在公司内部网络中管控。另外,Harbor也提供了高级的安全特性,诸如用户管理,访问控制和活动审计等。(安全)

前提条件:

部署Harbor需要在docker 环境下,且需要docker-compose,这里我选择的版本是docker version:20.10.12  docker-compose version :2.2.2  harbor version:2.1.0

安装步骤(已经装有相应版本的docker):

1.下载docker-compose,在github上下载【下载链接】docker-compose GitHub,下载完后记得把名字改一下,最好改为docker-compose,然后通过ssh工具上传到服务器上 /usr/local/bin目录下,然后赋予执行权限

Chmod +x /usr/local/bin/docker-compose

然后查看下,是否安装成功,若显示版本号,则安装成功。

docker-compose –-version

 2.在github上下载harbor_offline的安装包:【下载链接】Harbor GitHub

然后创建一个目录 /data/install/harbor-offline-installer/harbor

mkdir /data/install/harbor-offline-installer/harbor

然后把安装包通过ssh,上传到/data/install/harbor-offline-installer/harbor目录下

【docker】docker学习(2)——docker私有仓库Harbor部署、上传下载镜像至harbor仓库实战_第1张图片

然后对tar包进行解压

tar -zxvf harbor-offline-installer-v2.1.0.tgz

然后修改harbor的配置,把http的端口改为自己想要映射的端口,hostname改为ip地址

vim harbor.yml.tmpl

【docker】docker学习(2)——docker私有仓库Harbor部署、上传下载镜像至harbor仓库实战_第2张图片然后,我们还需要把data的volume挂载到新的目录下面,不然存储数据的目录,就会分散开,杂乱无章,很容易找不到数据(这个也是在 harbor.yml.tmpl中更改)

注意:harbor的V2.1.0版本有个需要注意的地方,就是他没有harbor.cfg文件了,所以我们需要手动设置,复制一下

cp harbor.yml.tmpl harbor.yml

【docker】docker学习(2)——docker私有仓库Harbor部署、上传下载镜像至harbor仓库实战_第3张图片

 然后我们在执行这两个命令,(要在当前目录下,即/data/install/harbor-offline-installer/harbor下执行)

./prepare 

./install.sh

然后,我们就可以看到Harbor部署成功了。因为我的服务器是在阿里云上,所以我们还需要去登录阿里云,然后找到安全组,把我们harbor映射的端口开放下,这下我们就可以从外网访问harbor了

【docker】docker学习(2)——docker私有仓库Harbor部署、上传下载镜像至harbor仓库实战_第4张图片

 现在我们通过浏览器,输入ip:端口访问我们的harbor,登录成功后,可以修改我们的默认密码

【docker】docker学习(2)——docker私有仓库Harbor部署、上传下载镜像至harbor仓库实战_第5张图片

【docker】docker学习(2)——docker私有仓库Harbor部署、上传下载镜像至harbor仓库实战_第6张图片

 如果我们想要在服务器中登录harbor,即输入命令 docker login ip:端口【docker】docker学习(2)——docker私有仓库Harbor部署、上传下载镜像至harbor仓库实战_第7张图片

docker登录harbor常见报错:

解决方法:

cd /etc/docker
看这个目录下有没有daemon.json 这个文件,如果没有就手动创建 touch daemon.json
然后 vim daemon.json
在里面写入
{ "insecure-registries":["ip:端口"] }     #这里填入的就是你的harbor  ip和端口
然后重启下docker服务
Systemctl restart docker
然后把docker 容器都起来
docker start container ID

登陆成功后,我们就可以上传镜像到harbor仓库了

这里我们要先给之前原有的镜像打上标签,例如

docker tag java:8-jdk localregistry.example:6666/library/java:8-jdk-v1
#这里的java:8-jdk是原有的镜像名:标签名, 
#我们如果要上传给harbor的话要给这个镜像打上新的标签,
#标签名的语法就是harbor的ip:端口/新的镜像名:新的标签名

成功打上标签后,我们可以 docker images查看下,是不是镜像打上来了

 镜像成功打上新的标签后,我们就可以把镜像push到harbor仓库了

docker push harbor-ip:端口/library/nginx:test-latest    #上传镜像至远程仓库
#harbor-ip:端口/library/nginx:test-latest  这个就是你要上传的镜像的新的镜像名:新的标签名

可以看到,上传成功。【docker】docker学习(2)——docker私有仓库Harbor部署、上传下载镜像至harbor仓库实战_第8张图片

服务器想要从harbor上下载上传的镜像的时候,只需要先登录harbor,再pull即可下载harbor镜像到本地
docker login ip:端口  #登录harbor
docker pull ip:端口/library/nginx:test-latest   #ip:端口/library/nginx:test-latest  这个就是你要下载的在harbor上的镜像的名字:标签名


新人创作不易,觉得不错的看官,点个赞吧,么么哒!!!

转载注明出处!

                                                                 

你可能感兴趣的:(docker,Harbor,容器,devops,云原生)