搭建 Docker 私有镜像
介绍
目前部署私有 Docker Registry 有下面几个选择
- Vmware Harbor
- 官方 Registry
- Portus
- nexus
官方 registry 比较简单,没有 UI 界面;Portus 其实也是基于官方 registry ,可以理解为官方增强版,同时提供了部署的示例;Harbor,nexus 等都比较重量级,部署比较麻烦,这里暂时不考虑。由于我们的使用场景非常简单,所有选用官方 registry 镜像如何部署私有服务器。下面简单介绍下如何配置。
官方 Registry
配置,详细配置介绍
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25version: 0.1
log:
accesslog:
disabled: true
level: debug
formatter: text
fields:
service: registry
environment: staging
storage:
delete:
enabled: true
cache:
blobdescriptor: inmemory
filesystem:
rootdirectory: /var/lib/registry
http:
addr: :5000
headers:
X-Content-Type-Options: [nosniff]
health:
storagedriver:
enabled: true
interval: 10s
threshold: 3启动
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15!/bin/bash
set -e
registry_id=registry
docker stop $registry_id || true && docker rm $registry_id || true\
&& docker run --name $registry_id -d\
--restart always \
--network registry-net \
-p 5000:5000 \
-v /srv/docker/registry/config.yml:/etc/docker/registry/config.yml \
-v /srv/docker/registry/data:/var/lib/registry \
registry
配置 UI
由于官方镜像只有后台,提供了一组 RESTful API,UI 需要单独配置,可以选 docker-registry-web,docker-registry-ui,这里就以 docker-registry-ui
为例,操作都大同小异。
1 | !/bin/bash |
配置反向代理
如果需要通过 nginx 配置反向代理的话,需要注意添加 client_max_body_size
和 chunked_transfer_encoding
设置,具体参考 Docker nginx 反向代理设置。
1 | upstream hub.vking.io { |
参考资料
- https://docker_practice.gitee.io/repository/registry.html
- https://docs.docker.com/registry/
---EOF---