持续化部署教程(五)构建一个docker仓库服务

1.概要

通过上一章节的讲解,我们基本了解了docker的操作命令,在文章的最后我们成功的推送一个镜像到DockerHub的镜像仓库。从流程上说,操作过程可以说很完美,但是整个推送过程消耗的时间太长,我们消耗了大量时间在访问境外的镜像网站上,这无法满足我们实际应用中快速推送、快速部署的要求,我们今天就自己在内网搭建一个docker仓库(以下简称为私服),减少外网交互。
搭建私服需要安装三个组件:Docker、Docker-Compose、Harbor,其中Docker负责基础操作,Docker-Compose负责线程编排、Harbor提供可视化的界面。

2.搭建docker

我怎么可能会再写一次,请参见《持续化部署教程(三)初识docker 拥有docker》。(☺☺☺☺)

3.搭建docker-compose

step 1:下载相关文件

整个下载时间比较长,大家可以去看个美剧,再回来看结果。

sudo curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose 

下载过程如图:
在这里插入图片描述
或者从网盘上传文件到 /usr/local/bin

step 2:目录授权

sudo chmod +x /usr/local/bin/docker-compose

step 3:验证结果

docker-compose --version

在这里插入图片描述

4.搭建Harbor

将Harbor的安装包解压缩到目标机器,然后调整配置文件。

4.1 配置文件 harbor.cfg

hostname = [“访问IP”]
harbor_admin_password = [“登录用户密码”]
ui_url_protocol = http #注意不是https

4.2 配置文件 docker-compose.yml

Harbor的运行模式就是采用容器发布的模式,所以我们修改他的编排文件,将挂载卷地址、项目访问端口改为我们指定的端口。

4.2.1 修改挂载卷地址

volumes下的默认地址基本上都是系统盘,现在将它改为你认为合适的磁盘,如果认为默认地址不影响使用,则可以跳过此步。
在这里插入图片描述

4.2.2 修改访问端口

实际的组网条件下,80端口是很珍贵的,所以我们要将默认的80端口改为我们指定的端口,我这里改为9001(需要修改两个文件docker-compose.yml和common/templates/registry/config.yml),如果认为默认端口不影响则可以跳过此步。

  • 修改docker-compose.yml文件

在这里插入图片描述

  • 修改config.yml文件
    进入目录common/templates/registry/config.yml,修改相应节点。 在这里插入图片描述

4.3 启动项目

在harbor根目录下执行 ./prepare 更新配置文件中的引用文件,如果没有错误提示,则证明执行成功。
在这里插入图片描述
启动harbor项目。
在harbor根目录下执行 ./install.sh,如下图证明启动成功。
在这里插入图片描述
执行命令查看docker容器情况。

docker  ps -a

发现我们的docker容器增加了很多,这些都是harbor自动下载,并运行的容器。
在这里插入图片描述
输入地址 http://127.0.0.1:9001 就可以访问harbor的web项目了。帐号默认为admin,密码是我们上面章节介绍修改配置文件的 harbor_admin_password = [“登录用户密码”]。
在这里插入图片描述
登录成功,获得如下界面,证明搭建成功了。
在这里插入图片描述

5.客户端改造并推送镜像到私服

5.1服务端创建用户和项目

harbor->[系统管理]->[用户管理],创建一个新用户。

在这里插入图片描述

harbor->[项目]->[新建项目]->[自定项目](我们这里的项目名称叫 mdjzbsq)。
在这里插入图片描述

harbor->[项目]->[mdjzbsq]->[成员](添加相应成员,我们这里的成员是 test)。
在这里插入图片描述

5.1修改客户端文件

我们打开 daemon.json文件,增加insecure-registries,重启dokcer服务,使配置文件生效。

vi /etc/docker/daemon.json

“insecure-registries”: [“127.0.0.1:9001”]

如图,如果存在多个访问节点,请使用逗号间隔。
在这里插入图片描述

5.2 推送镜像到私服仓库

我部署仓库的IP是192.168.1.100,所以我们指定登录命令,登录指定的仓库,如果不填写,则登录的是DockerHub的仓库。

docker login 192.168.1.100:9001

在这里插入图片描述
因为我们要演示的是推送过程,所以我们认为本地存在一个容器叫做[ubuntu18_base]。
执行如下命令,完成推送。
从命令中可以看到,我们生成的镜像名称是有规律的。

192.168.1.100:9001/mdjzbsq/docker_ubuntu_base:1.0
[私服地址]/[私服项目地址]/[镜像名称]:[版本号]

docker commit -a 'zhangbo' -m 'add jdk 1.8 add vim add nginx' ubuntu18_base 192.168.1.100:9001/mdjzbsq/docker_ubuntu_base:1.0
docker push 192.168.1.100:9001/mdjzbsq/docker_ubuntu_base:1.0

5.3 私服仓库验证推送结果

访问私服web项目,点击项目获得镜像列表。
在这里插入图片描述
点击镜像详情,可以查看到相关镜像信息。
在这里插入图片描述

小结

本章节介绍的是如何搭建私服并推送镜像的过程,访问私服可以大大提高我们对项目的访问速度,提升工作效率。勤做笔记,及时总结,祝大家学习愉快。
相关资料下载,我放到了百度云盘中,大家可以自行下载。

链接:https://pan.baidu.com/s/1-Jni8f4poNobf1La1kwqGQ
提取码:zrt9

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值