背景介绍
docker 提供了官方的 registry 仓库镜像,可以通过docker hub进行拉取:docker pull registry
但是直接拉取的registry我们并不知道如何设置,我们可以看看他的Dockerfile地址,git地址:
https://github.com/docker/distribution-library-image
通过这个仓库知道主要是通过config-example.yml来配置。
version: 0.1 |
和 proxy cache 相关的参数是 proxy 。
搭建 docker registry
okay,下面我们通过原始dockerfile构建一个缓存私有仓库:
1.修改config-example.conf文件
由于本机是intel的64位系统,因此选择amd64,修改里面的config-example.conf:
version: 0.1 |
2.构建registry镜像
构建registry镜像:docker build -t docker-registry:v0.1 .
3.运行registry容器
运行registry容器:
docker run -d -p 5000:5000 --restart=always --name docker-registry \ |
或者可以直接将配置文件挂载进去:docker run -d -p 5000:5000 --restart=always --name docker-registry \
-v `pwd`/config-example.yml:/etc/docker/registry/config.yml \
-v /home/registry:/var/lib/registry \
docker-registry:v0.1
4.测试缓存是否生效
在测试的daemon.json配置目标地址:cat > /etc/docker/daemon.json << EOF
{
"insecure-registries": ["10.10.6.111:5000"],
"registry-mirrors":["http://10.10.6.111:5000"]
}
EOF
重启容器服务service docker restart
测试:docker pull node:8.4.0-onbuild
用docker logs 查看 registry 容器:
docker logs -f docker-registry
time="2019-10-31T07:48:33.210442036Z" level=info msg="Adding new scheduler entry for library/node@sha256:0485a8f7251f7823455cb5efb010ee034e7b44b13414d11080c4daae8af1acb3 with ttl=167h59m59.999996323s" go.version=go1.11.2 instance.id=154296c5-33a6-44cc-bc25-9cb74eb2fc47 service=registry version=v2.7.1 |
从日志可以看出缓存成功了~
PS: 镜像第一次拉取还比较慢,第二次拉取速度立刻飞起~大家可以试试