使用 Docker Compose + Docker machine 配置一个 Docker 私有仓库。
GitHub:https://github.com/khs1994-docker/registry
官方 GitHub:https://github.com/docker/distribution/releases
一种是使用 Docker Compose
一种是基于 registry
镜像 ,添加配置文件之后构建自己的镜像。具体查看 GitHub
准备
申请 SSL 证书放到 ssl 文件夹,这里不进行详细说明。
编辑 config.yml
,该文件详细配置讲解请查看 Docker Registry v2 配置文件详解
1 | version: 0.1 |
添加登陆用户
将以下命令中的 username
password
替换为 用户名
和 密码
,也可以添加多个用户更多内容请搜索 htpasswd
1 | $ docker run --rm \ |
编辑 docker-compose.yml
1 | version: '3' |
启动
Swarm mode
由于 Docker Machine
不包含 Compose,这里使用 Swarm mode
。
1 | $ docker-machine create \ |
自定义镜像并运行
配置好所需文件,构建镜像,运行容器
1 | $ docker build -t username/registry . |
Docker Compose
1 | $ docker-compose up -d |
Nginx 代理配置
https://docs.docker.com/registry/recipes/nginx/
若使用外部 Nginx,在 docker-compose.yml
将端口配置为 5000:443
。
1 | upstream docker-registry { |
测试私有仓库功能
修改 /etc/hosts
,替换为对应 IP
1 | 127.0.0.1 docker.domain.com |
网页查看
https://docker.domain.com/v2/_catalog
命令行登录
1 | $ docker login docker.domain.com |
命令行操作
1 | $ docker pull nginx:alpine |
命令参考
1 | $ docker exec {docker-registry id} registry [command] |
垃圾回收
https://docs.docker.com/registry/garbage-collection/
1 | $ docker exec -it {docker-registry id} \ |
搜索
参考 API:https://docs.docker.com/registry/spec/api/
查看版本
1 | $ docker exec {docker-registry id} registry --version |
帮助信息
1 | $ docker exec [docker-registry id] registry help |