文章目录
- 一、基本了解
- 二、搭建私有仓库
- 2.1 基于官方镜像搭建
- 2.2 基于harbor
一、基本了解
- 大部分企业都会搭建一个内部使用得私有仓库,用于保存docker镜像,包括镜像的层次结构和元数据。
Docker Registry分类:
- 企业版EE。
- 官方docker hub仓库。
- 私有仓库,自己搭建。比如官方提供的Docker Distribution软件包搭建、harbor工具。
注意事项:
- 所有的Registry默认是https,而自建Registry可能是基于http工作的。但是Docker默认是拒绝使用http提供Registry服务的,除非明确的告诉它,我们就是要用http协议的Registry。
- 官方提供的 昂库不好用,一般都是采用harbor搭建私有仓库。
harbor介绍:
- Harbor是由VMWare在Docker Registry的基础之上进行了二次封装,加进去了很多额外程序,可以提供web管理界面。
- harbor私有仓库可以通过容器部署,涉及到很多服务,所以需要使用docker compose工具管理。
二、搭建私有仓库
2.1 基于官方镜像搭建
- 弊端多,不能查找私有仓库中有哪些镜像;上传的镜像文件数据不易保存。
- 这种方式了解即可,生产中不会采用该方式。
1.直接拉取镜像启动仓库容器。
//指定always参数,代表重启docker服务后,让容器继续运行。
docker run -d -p 5000:5000 --restart=always registry
2.修改docker配置文件,指定私有仓库地址。
[root@localhost ~]# cat /etc/docker/daemon.json
{
"bip":"192.168.100.1/24",
"dns":["114.114.114.114","8.8.8.8"],
"registry-mirrors": ["https://registry.docker-cn.com","https://11vuihex.mirror.aliyuncs.com"],
"insecure-registries": ["192.168.161.129:5000"] //添加此行。
}
systemctl daemon-reload
systemctl restart docker
3.上传本地镜像到私有仓库。
//修改本地镜像标签。
docker tag httpd:v1 192.168.161.129:5000/httpd:v1
//上传
docker push 192.168.161.129:5000/httpd:v1
2.2 基于harbor
- docker-compose下载地址
- harbor安装包下载地址
注意事项:
- 在客户端上传镜像时一定要记得执行docker login进行用户认证,否则无法直接push。
- 在客户端使用的时候如果不是用的https则必须要在客户端的/etc/docker/daemon.json配置文件中配置insecure-registries参数。比如添加一行:“insecure-registries”: [“http://192.168.161.129”]
- 数据存放路径应在配置文件中配置到一个容量比较充足的共享存储中
- Harbor是使用docker-compose命令来管理的,如果需要停止Harbor也应用docker-compose stop来停止,其他参数请–help
1.安装docker-compose
wget https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-linux-x86_64
mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
2.安装harbor。
//下载解压安装包。
wget https://github.com/goharbor/harbor/releases/download/v2.8.2/harbor-offline-installer-v2.8.2.tgz
tar zxf harbor-offline-installer-v2.8.2.tgz -C /usr/local/
//修改配置文件。
cd /usr/local/harbor/
cp harbor.yml.tmpl harbor.yml
vim harbor.yml
......
https //关闭https相关。
......
hostname: 192.168.161.129 //修改本地ip。
harbor_admin_password: citms //harbor仓库登陆密码。
//安装。
./install.sh
3.默认80端口访问网页。账号/密码:admin/自定义的citms
4.创建仓库。
5.上传镜像。
//修改配置文件,指定客户端使用http登录仓库。
cat /etc/docker/daemon.json
{
"bip":"192.168.100.1/24",
"dns":["114.114.114.114","8.8.8.8"],
"registry-mirrors": ["https://registry.docker-cn.com","https://11vuihex.mirror.aliyuncs.com"],
"insecure-registries": ["http://192.168.161.129"] //添加此行。
}
systemctl daemon-reload
systemctl restart docker
//上传。
docker tag nginx:v1 192.168.161.129/qingjun/nginx:v1
docker push 192.168.161.129/qingjun/nginx:v1
6.下载镜像。
docker pull 192.168.161.129/qingjun/nginx:v1