1.概要
通过上一章节的讲解,我们基本了解了docker的操作命令,在文章的最后我们成功的推送一个镜像到DockerHub的镜像仓库。从流程上说,操作过程可以说很完美,但是整个推送过程消耗的时间太长,我们消耗了大量时间在访问境外的镜像网站上,这无法满足我们实际应用中快速推送、快速部署的要求,我们今天就自己在内网搭建一个docker仓库(以下简称为私服),减少外网交互。
搭建私服需要安装三个组件:Docker、Docker-Compose、Harbor,其中Docker负责基础操作,Docker-Compose负责线程编排、Harbor提供可视化的界面。
2.搭建docker
安装docker
curl https://mirrors.aliyun.com/repo/Centos-7.repo >> CentOS-Base-Aliyun.repomv CentOS-Base-Aliyun.repo /etc/yum.repos.d/yum -y install yum-utils device-mapper-persistent-data lvm2yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repoyum clean yum makecache fastyum -y install docker-cesystemctl start docker
3.搭建docker-compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose //目录授权
sudo chmod +x /usr/local/bin/docker-compose//验证结果
docker-compose --version
4.搭建Harbor
将本地的harbor文件上传到服务器然后解压
配置harbor.cfg
hostname = [“访问IP”]
harbor_admin_password = [“登录用户密码”]
ui_url_protocol = http #注意不是https
5.修改访问端口
需要修改两个文件docker-compose.yml和common/templates/registry/config.yml
6.启动项目
在harbor根目录下执行 ./prepare 更新配置文件中的引用文件,如果没有错误提示,则证明执行成功。
在harbor根目录下执行 ./install.sh,如下图证明启动成功。
输入地址 http://127.0.0.1:9001 就可以访问harbor的web项目了。帐号默认为admin,密码是我们上面章节介绍修改配置文件的 harbor_admin_password = [“登录用户密码”]。
7.客户端改造并推送镜像到私服
7.1服务端创建用户和项目
harbor->[系统管理]->[用户管理],创建一个新用户。xiaozeng
harbor->[项目]->[新建项目]->[自定项目](我们这里的项目名称叫 abcd
)。
harbor->[项目]->spbatc]->[成员](添加相应成员,我们这里的成员是 xiaozeng)。
修改客户端文件
vi /etc/docker/daemon.json
重启docker
root@localhost]# systemctl daemon-reload
[root@localhost]# systemctl restart docker
Vi /usr/lib/systemd/system/docker.service
修改一下这个文件否则报错
截图
这个是仓库的ip+端口
都修改完重启docker和仓库
然后用docker login ip:9001访问(这是我的ip正确的是自己仓库的就行)
推送镜像:
docker push ip:9001/abcd/harbor-db:1.0.0
ip:9001这个是仓库地址
abcd这个是仓库里面的项目名称
共同组成整个镜像名称。