环境准备

环境:两个centos7虚拟机 

虚拟机一:192.168.249.132 用作私有仓库

虚拟机二:192.168.249.133 用户开发机


一、安装Docker(虚机一、二)

两台主机都需要安装,docker安装步骤参考 

https://blog.51cto.com/14129044/2425605


二、安装docker-compose(虚机一)

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

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

ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

docker-compose --version


三、安装harbor(虚机一)

1、获取harbor安装包

wget https://storage.googleapis.com/harbor-releases/release-1.8.0/harbor-online-installer-v1.8.1.tgz

tar xvf harbor-online-installer-v1.8.1.tgz

2、配置harbor目录下的harbor.yml

vim harbor.yml

将hostname改为本机IP,其它参数可以保持默认值;port为harbor的端口号,harbor_admin_password为admin用户的登录密码

docker私有仓库搭建(harbor)_docker

3、启动harbor

./install.sh


4、浏览器中输入192.168.249.132弹出如下界面,使用admin账户登录

docker私有仓库搭建(harbor)_运维_02


5、新建项目(仓库)

新建一个名称为abc的私有仓库,设置不公开

注意:当项目设为公开后,任何人都有此项目下镜像的读权限。命令行用户不需要“docker login”就可以拉取此项目下的镜像。

docker私有仓库搭建(harbor)_系统集成_03


四、使用镜像仓库(虚机二

1、在用户机登录私有仓库

docker login 192.168.249.132

若提示"Error response from daemon: Get https://192.168.249.132/v2/: dial tcp 192.168.249.132:443: connect: connection refused"

docker1.3.2版本开始默认docker registry使用的是https,我们设置Harbor默认http方式,所以当执行用docker login、pull、push等命令操作非https的docker regsitry的时就会报错。

解决,在发起登录的客户端主机上的文件(如没有则创建)/etc/docker/daemon.json中添加如下参数:

{

"insecure-registries": ["192.168.249.132"]

}

重启docker:systemctl restart docker.service

再次登录,显示成功

docker私有仓库搭建(harbor)_docker_04

2、上传镜像到仓库

查看本机当前存在nginx:latest镜像

docker私有仓库搭建(harbor)_系统集成_05

先打tag,然后再push上传

docker tag nginx:latest 192.168.249.132/abc/nginx:v1

docker push 192.168.249.132/abc/nginx:v1

docker私有仓库搭建(harbor)_运维_06

docker私有仓库搭建(harbor)_docker_07

3、镜像下载

用户机上先将刚刚上传的192.168.249.132/abc/nginx:v1 镜像删除,使用docke image ls命令查看保证本地已无该镜像

docker私有仓库搭建(harbor)_云计算_08

再使用pull命令去私有镜像仓库下载,可看到已下载成功

docker pull 192.168.249.132/abc/nginx:v1

docker私有仓库搭建(harbor)_运维_09