写在前面:
Docker私有registry指的是在私有服务器上搭建的、用于管理Docker repositories的实体。可以理解成私有的Docker资源管理仓库。搭建Docker私有registry,本质上是从Docker官方库拉取registry
镜像,并在本地Docker中运行。Docker官方文档介绍了搭建的步骤。但是在实际部署中,会遇到一些文档中没有详细描述的情况和问题。这篇博文记录了部署私有registry并配置https的完整步骤,并且探讨了存储空间不足的一些解决方案。
部署环境
- 操作系统:Centos7
- 已经安装好Docker CE版
- 可以联网
基本步骤
在命令行通过以下命令就可以启动一个本地的registry:
$ docker run -d -p 5000:5000 --restart=always --name registry registry:2
该registry运行在localhost的5000端口,使用
http
协议.--restart=always
表示该实例遇到问题会自动重启,--name registry
表示名字是registry
。可以自己起名。向本地私有registry推送镜像
从Docker Hub上拉取一个镜像,例如
ubuntu:16.04
:$ docker pull ubuntu:16.04
将此镜像tag为
localhost:5000/my-ubuntu
:$ docker tag ubuntu:16.04 localhost:5000/my-ubuntu
注意,此处必须指明
<host:port>
,否则后续会默认push到官方Docker Hub上。将tag的镜像推送到本地的私有registry:
$ docker push localhost:5000/my-ubuntu
删除本地的镜像,尝试从私有registry中拉取:
删除:$ docker image remove ubuntu:16.04
$ docker image remove localhost:5000/my-ubuntu
拉取:
</$ docker pull localhost:5000/my-ubuntu