在 Docker 中,执行 docker pull xxx 的时候 ,它实际上是从 registry.hub.docker.com 这个地址去查找,这就是Docker公司为我们提供的公共仓库。在实际工作中,公司不太会允许把企业项目push到公有仓库进行管理。所以为了更好的管理镜像,Docker不仅提供了一个中央仓库,同时也允许我们搭建本地私有仓库。搭建私有仓库的方法有两种registry、harbor。第一种方法是官方提供的一个搭建私有仓库的镜像 registry ,只需把镜像下载下来,运行容器并暴露5000端口,就可以使用了。但这种方法命令简单,但管理的功能上存在不足,所以我选择了第二种方法。
下载
地址:https://github.com/goharbor/harbor/releases 目前版本是v2.1.2,不知道是家里的网络问题,还是下载源限速(此可能性比较大),下载竟然需要7个小时,没有耐心的我再次求助百度云。只找到了1.1.2版本,勉强用吧。
配置
解压下载的安装包 harbor-offline-installer-v1.1.2.tgz
tar -xvf harbor-offline-installer-v1.1.2.tgz
修改 harbor.cfg
#hostname 改为本地ip,可以不指定端口
hostname = 192.168.31.143:2080
运行./install.sh即可构建镜像,并把服务启动起来:
#./install.sh
harbor的停止:
#/usr/local/bin/docker-compose stop
安装harbor时出现docker-compose未安装的错误。
安装docker-compose非常简单,首先保证服务器上安装了pyton,docker-compose已经不支持python2的版本了,用python2安装后运行会报错,早期版本的linux自带的python都是python2,所以需要先装一个python3,然后输入一下命令:
#pip install docker-compose
安装的时间会比较长,耐心等等,默认安装目录在 /usr/local/bin/目录下,安装后运行一下命令检查结果:
#docker-compose --version
docker-compose version 1.27.4, build unknown
中间还遇到用pyton2安装的各种问题,建议就不要去挑战了,装个python3解决一切问题。
harbor默认端口是80,但是我的80端口已经被git仓库占用了。所以在安装启动的时候失败,报错为:端口被占用。所以我将端口修改为2080。
第一次尝试修改harbor.cfg文件
#The IP address or hostname to access admin UI and registry service.
#DO NOT use localhost or 127.0.0.1, because Harbor needs to be accessed by external clients.
hostname = 127.0.0.0:2020
保存后,重新启动hardor,仍然不成功,报端口被占用,尴尬了。
第二次尝试在hardor目录下修改docker-compose.yml文件将8080端口映射为2080端口:
#vi docker-compose.yml
proxy:
image: nginx:1.11.5
container_name: nginx
restart: always
volumes:
- ./common/config/nginx:/etc/nginx
ports:
- 2080:80
- 443:443
depends_on:
- mysql
- registry
- ui
- log
保存后,重启,总算大功告成,但是此时要提醒,第一步将端口改成2020,是没有用的,而且在启动的时候还会出现一下代码片段,是及其具有迷惑性的,实际访问的端口应该是2080,所以第一步的修改是非常多余和错误的(这个端口或许是有用的,后面使用的时候会再做介绍)。
✔ ----Harbor has been installed and started successfully.----
Now you should be able to visit the admin portal at http://ip:2020 .
For more details, please visit https://github.com/vmware/harbor .