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