搭建私有镜像仓库
搭建镜像仓库可以基于 Docker 官方提供的 Docker Registry 来实现。官网地址
简化版镜像仓库
Docker 官方的 Docker Registry 是一个基础版本的 Docker 镜像仓库,具备仓库管理的完整功能,但是没有图形化界面。搭建方式比较简单,命令如下:
docker run -d \--restart=always \--name registry \-p 5000:5000 \-v registry-data:/var/lib/registry \registry
命令中挂载了一个数据卷 registry-data 到容器内的 /var/lib/registry 目录,这是私有镜像库存放数据的目录。
访问 http://halo:5000/v2/_catalog 可以查看当前私有镜像服务中包含的镜像
带有图形化界面版本
使用 Docker Compose 部署带有图象界面的 Docker Registry,命令如下:
version: '3.0'services:registry:image: registryvolumes:- ./registry-data:/var/lib/registryui:image: joxit/docker-registry-ui:staticports:- 8181:80environment:- REGISTRY_TITLE=Halo-Docker-Registry- REGISTRY_URL=http://registry:5000depends_on:- registry
配置 Docker 信任地址,私服采用的是 http 协议,默认不被 Docker 信任,所以需要做一个配置:
# 打开要修改的文件
vi /etc/docker/daemon.json
# 添加内容:
"insecure-registries":["http://halo:8181"]
# 重加载
systemctl daemon-reload
# 重启docker
systemctl restart docker
推送、拉取镜像
推送镜像到私有镜像服务必须先 tag,步骤如下:
① 重新 tag 本地镜像,名称前缀为私有仓库的地址:halo:8181/
docker tag nginx:latest halo:8181/nginx:1.0
② 推送镜像
docker push halo:8181/nginx:1.0
③ 拉取镜像
docker pull halo:8181/nginx:1.0
