Docker私服(Registry)使用

744 阅读1分钟

Docker私服是存放镜像的本地仓库,类似于docker hub。私服是本地的仓库,用于保存公司内部上传的Docker镜像。

Docker Registry安装

#拉取镜像
docker pull registry

#启动容器
docker run -d -p 5000:5000 -v /var/my_registry/:/var/lib/registry --privileged=true registry

# 编辑配置文件,修改配置文件使docker支持http
vi /etc/docker/daemon.json 

#增加仓库配置信息 
{
 "insecure-registries":["192.168.2.100:5000"] 
} 

本地新建镜像发布到私有仓库

命令操作

#查看当前私服仓库的镜像
curl -XGET http://192.168.2.100:5000/v2/_catalog
#将新镜像修改为符合私服规范的Tag ,规范:docker tag Tag Host:Port/Repository:Tag
docker tag dp/dp-service-export:latest 192.168.2.100:5000/dp/dp-service-export:latest
#Push到私服,push前必须打Tag
docker push 192.168.2.100:5000/dp/dp-service-export:latest

Tag规范

Tag:要上传的镜像版本号; Host:本地私有库的映射网址(本文为192.168.2.100); Post:本地私有库的映射端口(本文为5000); Repository:Tag:上传到私有库Registry后自定义的镜像名字、版本号。

页面操作

安装 hyper/docker-registry-webUI

平时对仓库镜像的管理,如果仅通过接口请求来操作仓库镜像,还是挺麻烦的。

下面推荐一款轻量级的管理界面

# 拉取镜像
docker pull hyper/docker-registry-web
# 启动容器 --link myRegistry 是我以前安装的 Registry 
docker run -d -p 5001:8080 --name registry-web --restart=always --link myRegistry -e registry_url=http://registry:5000/v2 -e registry_name=localhost:5000 hyper/docker-registry-web:latest

配置删除权限

默认安装的Registry不支持删除

# 进入容器
docker exec -it e4d2b1110a34 sh
# 编辑config.xml,增加delete
vi /etc/docker/registry/config.yml
# 重启容器
docker restart e4d2b1110a34