文章目录
- 一、安装docker-compose 工具
- 二、安装Harbor
- 1. 从github上获取要安装的Harbor版本
- 2. 编辑docker的主配置文件docker.service文件
- 3. docker-compose.yml
- 三、使用Harbor仓库管理镜像
- 1. 配置私有仓库
- 2. 访问搭好的私有仓库
- 3. 将镜像传到Harbor
- 1) 将镜像打tag
- 2) 将打tag的镜像推送至Harbor
- 3) 从Harbor上拉取镜像
一、安装docker-compose 工具
github地址:https://github.com/docker/compose/releases/tag/1.25.3
在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版本
https://github.com/goharbor/harbor/releases
可以直接使用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