简介
有时候使用 Docker Hub 这样的公共仓库可能不方便,用户可以创建一个本地仓库供私人使用
docker-registry
是官方提供的工具,可以用于构建私有的镜像仓库。
安装运行 docker-registry
docker run -d \
-p 5000:5000 \
-v /opt/data/registry:/var/lib/registry \
registry
默认情况下,仓库会被创建在容器的 /var/lib/registry
目录下。可以通过 -v
参数来将镜像文件存放在本地的指定路径。
在私有仓库上传
创建好私有仓库之后,就可以使用 docker tag
来标记一个镜像,然后推送它到仓库。例如私有仓库地址为 192.168.0.153:5000
docker tag ubuntu:latest 192.168.0.153:5000/ubuntu:latest
注意事项
例如 192.168.0.153:5000
这样的内网地址作为私有仓库地址,无法成功推送镜像。这是因为 Docker 默认不允许非 HTTPS
方式推送镜像。我们可以通过 Docker 的配置选项来取消这个限制,或者查看下一节配置能够通过 HTTPS
访问的私有仓库。
Ubuntu 14.04, Debian 7 Wheezy
编辑 /etc/default/docker
文件,在其中的 DOCKER_OPTS
中增加如下内容:
DOCKER_OPTS="--registry-mirror=https://registry.docker-cn.com --insecure-registries=192.168.0.153:5000"
Ubuntu 16.04+, Debian 8+, centos 7
编辑 /etc/docker/daemon.json
文件,写入如下内容
{
"registry-mirror": [
"https://registry.docker-cn.com"
],
"insecure-registries": [
"192.168.0.153:5000"
]
}
sudo service docker restart
正确上传
至此可以正确上传了
docker push 192.168.0.153:5000/ubuntu:latest
查看仓库中包含镜像
curl 192.168.0.153:5000/v2/_catalog
如果出现
{"repositories":["ubuntu"]}
Congratulations!你的docker registry 搭建完成