Docker之Harbor私服的搭建及使用

一、更新epel源并安装docker
#更新epel源
yum -y install epel-release

#安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2

#添加 Docker yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

#安装docker-ce
yum -y install docker-ce

#启动docker
systemctl start docker
二、安装docker-compose

1、从官网直接下载二进制文件

#下载二进制文件
curl -L "https://github.com/docker/compose/releases/download/1.23.2/docker-compose-$(uname -s)-$(uname -m)" \
-o /usr/local/bin/docker-compose

#添加执行权限
chmod +x /usr/local/bin/docker-compose

#查看版本信息
docker-compose --version

2、采用python的包管理工具pip安装

#安装python-pip
yum install -y python-pip

#添加国内pip源
mkdir /root/.pip/
cat > /root/.pip/pip.config << END
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host=mirrors.aliyun.com
timeout = 150

END


#安装docker-compose
pip install docker-compose

#查看版本信息
docker-compose --version
三、安装harbor

Docker容器应用的开发和运行离不开可靠的镜像管理,虽然Docker官方也提供了公共的镜像仓库,但是从安全和效率等方面考虑,部署我们私有环境内的Registry
也是非常必要的。Harbor是由VMware公司开源的企业级的Docker Registry管理项目,它包括权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、
镜像复制和中文支持等功能。

1、下载二进制包

#github地址
https://github.com/goharbor/harbor

#二进制软件包下载,这里选择release在线版本
wget https://storage.googleapis.com/harbor-releases/release-1.7.0/harbor-online-installer-v1.7.4.tgz

2、修改harbor配置文件harbor.cfg

hostname = 192.168.49.131     #这里也可以写域名
# 访问协议,默认是http,也可以设置https,如果设置https,则nginx ssl需要设置on
ui_url_protocol = http

# mysql数据库root用户默认密码root123,实际使用时修改下
db_password = root123

# 启动Harbor后,管理员UI登录的密码,默认是Harbor12345
harbor_admin_password = Harbor12345

# 用户创建项目权限控制,默认是everyone(所有人),也可以设置为adminonly(只能管理员)
project_creation_restriction = adminonly

3、配置启动harbor

当前目录下执行./prepare,再执行./install.sh。
Harbor就回根据当前目录下的docker-compose.yml下载依赖的镜像
访问:http://192.168.49.131 用户名和密码:admin/Harbor12345

在这里插入图片描述
在这里插入图片描述

4、问题

docker login 192.168.49.131
Username: admin
Password: 
Error response from daemon: Get https://192.168.49.131/v2/: dial tcp 192.168.49.131:443: connect: connection refused

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

四、Harbor配置TLS证书

1、修改harbor配置文件harbor.cfg

hostname = 192.168.49.131
ui_url_protocol = https
ssl_cert = /data/cert/ca.crt
ssl_cert_key = /data/cert/ca.key

2、创建自签名证书key文件

mkdir -p /data/cert/
openssl genrsa -out /data/cert/ca.key 2048 

3、创建自签名证书crt文件
注意命令中/CN=192.168.49.131字段中 192.168.49.131 修改为你自己的仓库域名。

openssl req -x509 -new -nodes -key /data/cert/ca.key -subj "/CN=192.168.49.131" -days 6000 -out /data/cert/ca.crt

4、开始安装Harbor

./install.sh

#出现以下内容正面配置成功
✔ ----Harbor has been installed and started successfully.----

Now you should be able to visit the admin portal at https://192.168.49.131. 
For more details, please visit https://github.com/goharbor/harbor .

5、添加docker私有仓库配置,并重启docker
方式一:

#在harbor配置文件文件目录下执行,停止容器
docker-compose stop

#停止docker
systemctl stop docker

#增加私有仓库配置,这里把公有仓库地址改成了阿里云docker仓库地址
cat > /etc/docker/daemon.json << END
{"registry-mirrors": ["http://kfwkfulq.mirror.aliyuncs.com"],"insecure-registries":["https://192.168.49.131"]}
END

#启动docker
systemctl start docker

#在harbor配置文件文件目录下执行,启动容器
docker-compose up -d

方式二:

#在harbor配置文件文件目录下执行,停止容器
docker-compose stop

#停止docker
systemctl stop docker

#修改docker的启动文件,增加私有仓库配置
vim /usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --insecure-registries=https://192.168.49.131

#启动docker
systemctl daemon-reload
systemctl start docker

#在harbor配置文件文件目录下执行,启动容器
docker-compose up -d

6、登陆

docker login 192.168.49.131
Username: admin
Password: 
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

在这里插入图片描述
7、推送镜像到私有仓库

步骤:
#镜像打标签
docker tag 镜像名:标签 私服地址/仓库项目名/镜像名:标签

#推送到私服
docker push  私服地址/仓库项目名/镜像名:标签 

#从私服拉取镜像
docker pull 私服地址/仓库项目名/镜像名:标签

------------------------------
#示例
docker pull busybox
docker tag busybox:latest 192.168.49.131/library/busybox:latest
docker push 192.168.49.131/library/busybox:latest
docker pull 192.168.49.131/library/busybox:latest

8、图形化界面(客户端)访问
由于证书是我们自己生产的,所以需要我们提前将 /data/cert/ca.crt 文件上传到windows服务器(客户端),双击安装即可。
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值