创建docker私有化仓库 (使用 Harbor 搭建)

1、harbor介绍

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

官网地址:https://github.com/goharbor/harbor

环境要求:安装harbor,系统根分区的可用空间需要大于6G,否则安装时会报空间不足。内存2G以上

2、docker-ce的安装

# 安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2
# 添加Docker软件包源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 安装Docker CE
yum install -y docker-ce
# 启动Docker服务并设置开机启动
systemctl start docker
systemctl enable docker
#镜像加速
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s https://b9sbiwe3.mirror.aliyuncs.com

FQA:

默认配置下,如果在 CentOS 使用 Docker CE 看到下面的这些警告信息:

WARNING: bridge-nf-call-iptables is disabled

WARNING: bridge-nf-call-ip6tables is disabled

#请添加内核配置参数以启用这些功能。

$ sudo tee -a /etc/sysctl.conf <<-EOF

net.bridge.bridge-nf-call-ip6tables = 1

net.bridge.bridge-nf-call-iptables = 1

EOF

然后重新加载 sysctl.conf 即可

$ sudo sysctl -p

3、安装docker-compose

下载网站docker-compose 版本 :https://github.com/docker/compose/releases/

(提示:Compose v2 架构和安装说明与 v1 不同,请参阅README.md)这里我使用的是v1最新版本(1.29.2)

#将docker-compose移至/usr/bin/docker-compose目录
mv docker-compose-Linux-x86_64   /usr/local/bin/docker-compose
#赋予执行权限
chmod +x /usr/local/bin/docker-compose
#执行docker-compose测试
docker-compose

4、harbor安装

harbor版本:https://github.com/vmware/harbor/releases     这里我使用的是最新版本

4.1、上传解压离线安装包

并移动到/opt目录,复制一份harbor配置模板文件(harbor.yml.tmpl)命名为harbor.yml

#tar zxvf  harbor-offline-installer-v2.3.3.tgz

#mv harbor /opt

# cd /opt/harbor/

# cp harbor.yml.tmpl harbor.yml

4.2、SSL证书生成:

# mkdir -p /data/certs

# cd /data/certs

# openssl req -newkey rsa:4096 -nodes -sha256 -keyout 192.168.3.71.key -x509 -days 365 -out 192.168.3.71.crt

image.png

4.3、修改harbor配置脚本

hostname:改成主机ip

http.port:默认将占用80端口。 

https:如果要启动https还需要配置ssl证书。默认将占用443端口,如果不启用需要注释

harbor_admin_password:harbor管理员密码。默认管理面板登陆密码为:Harbor12345。

database.password:数据库密码,默认password: root123。

data_volume:数据存放目录,默认目录为/data

修改后效果如下:(添加了一些注释说明)红色标记处为修改的地方

# hostname设置访问地址,可以使用ip、域名,不可以设置为127.0.0.1或localhost

hostname = 192.168.3.71

# http related config

http:

  # port for http, default is 80. If https enabled, this port will redirect to https port

  port: 80

# https related config(如果不需要https协议请注释https相关内容)

https:

  # https port for harbor, default is 443

  port: 443

  # The path of cert and key files for nginx

  certificate: /data/certs/192.168.3.71.crt

  private_key: /data/certs/192.168.3.71.key

#  这里设置的时默认harbor管理员admin账户密码

harbor_admin_password: Harbor

# Harbor DB configuration

database:

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

  password: root123

 #  空闲连接池中的最大连接数。如果它<=0,则不保留空闲连接。

  max_idle_conns: 100

  # 打开到数据库的最大连接数。如果它<=0,那么打开连接的数量就没有限制。

  # 注意:harbor的postgres默认连接数为1024。

  max_open_conns: 900

# 默认数据存放目录

data_volume: /data

4.4、预编译生成harbor的安装脚本

执行命令:./prepare

提示:每次修改完harbor.yml配置文件后都需要运行,生成更新/compose_location/docker-compose.yml编排脚本

预编译完成截图:

image.png

4.5、开始安装harbor

执行命令:./install.sh 

安装过程详细截图:all-install.png

安装完成截图:

image.png

4.6、常用管理命令:

一定要在harbor目录中运行

停止服务: docker-compose stop
开始服务: docker-compose start
重启服务:docker-compose restart
停止服务并删除容器:docker-compose down
启动服务并运行容器:docker-compose up

或者安装成服务(可选项)

vim /usr/lib/systemd/system/harbor.service

设置系统每次启动时调用,内容如下:

Description=Harbor
After=docker.service systemd-networkd.service systemd-resolved.service
Requires=docker.service
Documentation=http://github.com/vmware/harbor
 
[Service]
Type=simple
Restart=on-failure
RestartSec=5
ExecStart=/usr/bin/docker-compose -f {{ harbor_install_path }}/harbor/docker-compose.yml up
ExecStop=/usr/bin/docker-compose -f {{ harbor_install_path }}/harbor/docker-compose.yml down
 
[Install]
WantedBy=multi-user.target

4.7、访问Web

浏览器访问网址:https://192.168.3.71/   默认账号:admin    默认密码:Harbor

(这里harbor配置文件中登录密码我修改为Harbor,如果你没有修改过请与配置文件中harbor_admin_password字段定义的密码为准)

image.png

5、远程主机上传拉取镜像

5.1、把证书发给3.72的服务器:

在3.72上创建文件夹:mkdir -p  /etc/docker/certs.d/192.168.3.71

# scp /data/certs/192.168.3.71.crt [email protected]:/etc/docker/certs.d/192.168.3.71/

5.2、客户端配置私有镜像地址

修改/etc/docker/daemon.json

vim /etc/docker/daemon.json
{
    "registry-mirrors": ["https://b9sbiwe3.mirror.aliyuncs.com"],
    "insecure-registries":["http://192.168.3.71"]
 } 
说明:registry-mirrors:镜像地址,insecure-registries:非https访问的仓库地址

5.3、admin登录docker私有仓库

需要先登录才能上传镜像

docker login 192.168.3.71

image.png

5.4、给镜像打tag(举了两个实例)

# docker tag nginx:latest 192.168.3.71/library/nginx:latest

# docker tag busybox:latest  192.168.3.71/library/busybox:latest

5.5、push到仓库(举了两个实例)

# docker push 192.168.3.71/library/nginx:latest

# docker push 192.168.3.71/library/busybox:latest

5.6、查看上传结果

回到web界面刷新可以看出已上传上来:image.png

版权声明:
作者:WaterBear
链接:https://l-t.top/2080.html
来源:雷霆运维
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>
文章目录
关闭
目 录