什么Docker Registry
概述
官方的 Docker Hub 是一个用于管理公共镜像的地方,我们可以在上面找到我们想要的镜像,也可以把我们自己的镜像推送上去。但是,有时候我们的服务器无法访问互联网,或者你不希望将自己的镜像放到公网当中,那么你就需要 Docker Registry,它可以用来存储和管理自己的镜像。
基于 Docker 安装 Registry
我们使用 Docker 来安装和运行 Registry ,通过pull命令获取镜像,注意: 这一步可以省略,配置了docker-compose.yml
文件,启动项目docker-compose up
发现没有images
会自动去官服下载镜像
1 | docker pull registry |
在/usr/local/docker/路劲新建目录mkdir registry
,新建文件touch docker-compose.yml
docker-compose.yml
配置如下:
1 | version: '3.1' |
启动项目:
1 | docker-compose up |
访问
启动成功后需要测试服务端是否能够正常提供服务,有两种方式:
- 浏览器端访问
1 | http://ip:5000/v2/ |
- 终端访问
1 | curl http://ip:5000/v2/ |
配置 Docker Registry 客户端
我使用的是 Ubuntu Server 16.04 LTS 版本,属于 systemd 系统,需要在 /etc/docker/daemon.json 中增加如下内容(如果文件不存在请新建该文件)
1 | { |
注意:该文件必须符合 json 规范,否则 Docker 将不能启动。
之后重新启动服务。
1 | systemctl daemon-reload |
检查客户端配置是否生效
使用 docker info
命令手动检查,如果从配置中看到如下内容,说明配置成功(192.168.75.133 为我的 IP)
1 | Labels: |
测试镜像上传
我们以 tomcat
为例测试镜像上传功能
1 | ## 拉取一个镜像 |
查看全部镜像
1 | curl -XGET http://192.168.40.136:5000/v2/_catalog |
查看指定镜像
1 | curl -XGET http://192.168.40.136:5000/v2/tomcat/tags/list |
测试拉取镜像
- 先删除镜像
1 | docker rmi tomcat |
- 再拉取镜像
1 | docker pull 192.168.40.136:5000/tomcat:8.5.32 |
部署 Docker Registry WebUI
私服安装成功后就可以使用 docker 命令行工具对 registry 做各种操作了。然而不太方便的地方是不能直观的查看 registry 中的资源情况。如果可以使用 UI 工具管理镜像就更好了。这里使用 Docker Registry WebUI
工具
docker-registry-frontend
我们使用 docker-compose
来安装和运行,docker-compose.yml
配置如下:
1 | version: '3.1' |
注意:请将配置文件中的主机和端口换成自己仓库的地址
运行
1 | docker-compose up -d |
运行成功后在浏览器访问:http://192.168.40.136:8080)