docker+docker-compose搭建远程私有镜像仓库Harbor

792 阅读3分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。    

一、安装docker-compose 工具

github地址:github.com/docker/comp…

在linux终端执行如下命令:

curl -L https://github.com/docker/compose/releases/download/1.25.3/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

安装成功后,检验docker-compose版本:

docker-compose -v

二、安装Harbor

1. 从github上获取要安装的Harbor版本

github.com/goharbor/ha…

可以直接使用wget 工具拉取 1.7.0的线下版本的。

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

在这里插入图片描述 下载完成后,在本目录就能看到安装包: 在这里插入图片描述 解压安装包:

tar zxf harbor-offline-installer-v1.7.4.tgz 

在这里插入图片描述 解压成功后,我们只需要在配置文件中harbor.cfg 中修改hostname即可,修改成本机的ip地址。 在这里插入图片描述 如果您需要修改密码,那么我们只需要修改 harbor_admin_password的值就行。

harbor_admin_password: Harbor12345

修改完成后,切换至 Harbor目录,执行 ./install.sh命令 在这里插入图片描述

2. 编辑docker的主配置文件docker.service文件

centos查看docker的主配置文件的默认路径:

cat /usr/lib/systemd/system/docker.service

ubuntu 查看docker的主配置文件的默认路径:

cat /lib/systemd/system/docker.service

vim docker.service在 ExecStart 后面添加 --insecure-registry 116.62.146.90

ExecStart=/usr/bin/dockerd -H fd://  --containerd=/run/containerd/containerd.sock --insrcure-registry 116.62.146.90

在这里插入图片描述 注: 当然也可以用另一种方式,将该配置-insrcure-registry 116.62.146.90添加到dameon.json文件里,所在路径为/etc/docker/。 重新加载配置后,重启docker:

~# systemctl daemon-reload
~# service docker restart

在这里插入图片描述 启动成功后,切换到Harbor的安装目录,执行命令, 借助docker-compose 启动Harbor:

 docker-compose start

在这里插入图片描述 完整启动后,应包有以下镜像: 在这里插入图片描述

启动成功后,访问ip地址即可! 在这里插入图片描述 停止命令, 在Harbor的安装目录执行:

docker-compose stop

在这里插入图片描述

3. docker-compose.yml

  安装好Harbor后,可以发现根目录下的docker-compose.yml,里面配置了 搭建Harbor需要的所有工具, 主要包含如下模块和工具: nginx、harbor-jobservice、 harbor-portal、harbor-core、registry、registryctl、redis、 harbor-db、 harbor-log。

三、使用Harbor仓库管理镜像

1. 配置私有仓库

   安装好Harbor后,我们接下来就可以配置Harbor镜像仓库 在这里插入图片描述

2. 访问搭好的私有仓库

  有可能在登录的时候出现警告提示,登录不上的问题:WARNING! Using --password via the CLI is insecure. Use --password-stdin. 因为docker registry 默认的交互式 Https协议的,解决方法只需要在docker.service主配置文件中添加一行命令--insecure-registry 116.62.146.90 注: --in一定要在 --containerd 后面添加。

ExecStart=/usr/bin/dockerd -H fd://  --containerd=/run/containerd/containerd.sock --insecure-registry 116.62.146.90

登录远程仓库:

docker login -u admin -p Harbor12345 116.62.146.90

在这里插入图片描述

3. 将镜像传到Harbor

my-shop为我在Harbor仓库中新建的项目名,可以自定义。

1) 将镜像打tag

  格式: docker tag SOURCE_IMAGE[:TAG] 116.62.146.90/my-shop/IMAGE[:TAG] 如果不输入:, 那么得到新的镜像为的tag为latest 在这里插入图片描述

docker tag redis:latest 116.62.146.90/my-shop/redis

注: 打的tag 的格式,必须为 ip+项目名+镜像名

2) 将打tag的镜像推送至Harbor

   格式: docker push 116.62.146.90/my-shop/IMAGE[:TAG]

docker push  116.62.146.90/my-shop/redis

在这里插入图片描述 耐心地等待进度条完成,你就能发现在Harbor里多了一个刚才你推送的镜像。 在这里插入图片描述 在这里插入图片描述

3) 从Harbor上拉取镜像

在拉取前,需要先使用docker login 命令登录一下,登录成功后才能够拉取

 docker login 116.62.146.90
 docker pull 116.62.146.90/my-shop/my-shop:0.0.1-SNAPSHOT