前言
docker镜像仓库与yum源类似,只是yum源是保存的一些rpm包,来帮助我们快速安装软件。而docker镜像仓库是保存的docker镜像,来帮助我们快速拉取到我们需要的镜像。yum源有公共yum源和本地yum源,docker镜像仓库也类似,有官方镜像仓库,国内仓库(aliyun、daocloud等),这些都统称为公有仓库。也有公司的自建仓库也就是私有仓库,我们可以把按项目需求制作的镜像放到私有仓库保存。因为都是内网,也加速了镜像的拉取。 本期我们主要研究本地仓库的搭建两种方法 1、使用docker官方提供的registry镜像搭建镜像仓库 2、使用docker harbor搭建仓库(推荐)
一、使用registry镜像搭建镜像仓库
- 下载仓库镜像
docker pull daocloud.io/library/registry:latest
- 后台运行容器
docker run -d -p 5000:5000 daocloud.io/library/registry:latest
- 查看5000端口是否监听
docker exec 9eb netstat -anlp |grep 5000
- 尝试访问该仓库 返回必须是200OK才正确
curl -I 127.0.0.1:5000
HTTP/1.1 200 OK
- 给镜像打标签
docker tag personal_docker:v1 192.168.93.133:5000/personal_docker:v2
- push镜像到仓库
docker push 192.168.93.133:5000/personal_docker:v2
如果报错:
The push refers to a repository [192.168.93.133:5000/personal_docker]
Get https://192.168.93.133:5000/v1/_ping: http: server gave HTTP response to HTTPS client
这是因为docker默认支持https的协议,而我们的仓库是http协议的,docker认识其是不安全的,所以我们将仓库地址加入docker的配置文件,让docker信任该地址。
*注:使用该仓库的所有主机都要添加此配置*
vim /etc/docker/daemon.json
{ "insecure-registries":["192.168.93.133:5000"] } # 配置文件添加这一行内容
systemctl restart docker
docker start 9eb # 开启容器
docker push 192.168.93.133:5000/personal_docker:v2 # 上传镜像
- 查看仓库镜像
curl 192.168.93.133:5000/v2/_catalog
{"repositories":["personal_docker"]}
- 测试镜像 在其他主机尝试pull
docker pull 192.168.93.133:5000/personal_docker:v2
二、使用docker harbor搭建镜像仓库
- 安装docker-ce及docker-compose
yum -y install docker-ce docker-compose
- 下载docker harbor 离线安装包
harbor官网:https://goharbor.io/
wget https://storage.googleapis.com/harbor-releases/release-1.9.0/harbor-offline-installer-v1.9.1.tgz
tar xf harbor-offline-installer-v1.9.1.tgz
- 修改配置文件
vim docker-compose.yml
hostname # 本机地址
port # harbor监听端口
harbor_admin_password # admin密码 用于登录harbor
- 安装docker harbor
sh install.sh
docker images
goharbor/chartmuseum-photon v0.9.0-v1.9.1 0aa7451af9b8 7 weeks ago 131MB
goharbor/harbor-migrator v1.9.1 a83f1be1ec94 7 weeks ago 362MB
goharbor/redis-photon v1.9.1 4d8d79a557df 7 weeks ago 110MB
goharbor/clair-photon v2.0.9-v1.9.1 98b318ca3cb0 7 weeks ago 165MB
goharbor/notary-server-photon v0.6.1-v1.9.1 78dac4ed14d8 7 weeks ago 138MB
goharbor/notary-signer-photon v0.6.1-v1.9.1 5d9f413e14a8 7 weeks ago 135MB
goharbor/harbor-registryctl v1.9.1 f4b2b72cdf71 7 weeks ago 99.6MB
goharbor/registry-photon v2.7.1-patch-2819-2553-v1.9.1 d460d658f383 7 weeks ago 82.3MB
goharbor/nginx-photon v1.9.1 0db1e12b9d30 7 weeks ago 43.9MB
goharbor/harbor-log v1.9.1 368dd79ef99f 7 weeks ago 82.6MB
goharbor/harbor-jobservice v1.9.1 71d4a3eaff94 7 weeks ago 141MB
goharbor/harbor-core v1.9.1 d105210d9924 7 weeks ago 155MB
goharbor/harbor-portal v1.9.1 2dced1823043 7 weeks ago 51.3MB
goharbor/harbor-db v1.9.1 91784692a954 7 weeks ago 147MB
goharbor/prepare v1.9.1 44775181c88d 7 weeks ago 148MB
- 修改docker配置 新增信任仓库
cat /etc/docker/daemon.json
{
"bip": "172.100.100.1/24", # 修改docker默认网段
"registry-mirrors": ["https://pee6w651.mirror.aliyuncs.com"], # pull镜像加速器(阿里)
"insecure-registries": ["123.56.28.xxx:80xx"] #使用非ssl源时需要此配置、添加信任
}
重启docker服务
systemctl daemon-reload
systemctl restart docker
- 登录docker harbor
docker login http://ip:port/
登录成功后,可以查看仓库的project、image等信息,也可以进行docker push/pull等操作了
curl -u "harbor账号:密码" -X GET -H "Content-Type: application/json" "http://ip:port/api/search?"
- docker harbor UI界面
|