• 隐藏侧边栏
  • 展开分类目录
  • 关注微信公众号
  • 我的 GitHub
  • QQ: 1753970025
Chen Jiehua

如何搭建私有的docker registry 

最近在使用docker,官方提供了开放的中央仓库DockerHub给所有人使用,但是涉及内部信息的私有镜像并不适合提交到dockerhub。因此决定来搭建一个私有的docker仓库,顺便折腾练习一下……

安装docker

为了搭建docker registry,我们首先需要在服务器上安装Docker。这里以Ubuntu 16.04为例:

卸载旧版本

旧版本的Docker叫做 docker 或者 docker-engine,如果安装过了的话,先将其卸载:

关于存储驱动:

  • Linux内核版本大于4支持使用 overlay2,同时比 aufs 更好;
  • Linux内核版本3使用 aufs,因为 overlay/overlay2 不支持;

安装Docker CE

如果需要安装特定版本的Docker:

跑个hello-world镜像试试看:

部署本地仓库

docker registry实际上就是官方 regsitry镜像的一个实例,所以可以通过docker直接运行:

然后我们就可以使用本地的docker仓库了,先从Dokcer Hub拉取Ubuntu:16.04镜像:

打个标签,提交到我们本地仓库:

删除本地缓存的镜像,注意提交到仓库的镜像并不会被删除:

然后我们可以再从自己的docker仓库拉取镜像:

配置外部访问

我们上面的操作都只是在本地进行,因此我们还需要额外配置一下使得该docker仓库可以给外部使用。

获取HTTPS证书

为了支持外部访问,我们需要获取一个证书,可以使用Let’s Encrypted签发证书。

Nginx反向代理

配置一下nginx,这里我们docker仓库的域名设置为 https://docker.chenjiehua.me

限制访问

使用 basic auth限制访问权限,在nginx的配置中添加:

登陆docker仓库:

部署Docker Web

为了方便我们查看私有docker仓库中的镜像情况,我们可以使用docker-frontend来作为web界面:

配置一下nginx:

 

参考:

码字很辛苦,转载请注明来自ChenJiehua《如何搭建私有的docker registry》

评论