搭建私有镜像仓库
搭建镜像仓库可以基于Docker官方提供的DockerRegistry来实现。
官网地址:https://hub.docker.com/_/registry
简化版镜像仓库
Docker官方的Docker Registry是一个基础版本的Docker镜像仓库,具备仓库管理的完整功能,但是没有图形化界面。
搭建方式比较简单,命令如下:
docker run -d \ --restart=always \ --name registry \ -p 5000:5000 \ -v registry-data:/var/lib/registry \ registry
命令中挂载了一个数据卷registry-data到容器内的/var/lib/registry 目录,这是私有镜像库存放数据的目录。
访问http://YourIp:5000/v2/_catalog 可以查看当前私有镜像服务中包含的镜像
带有图形化界面版本
配置Docker信任地址
私服采用的是http协议,默认不被Docker信任,所以需要做一个配置
# 打开要修改的文件 vi /etc/docker/daemon.json # 添加内容: "insecure-registries":["http://192.168.223.128:8080"] # 重加载 systemctl daemon-reload # 重启docker systemctl restart docker
使用DockerCompose部署带有图象界面的DockerRegistry
创建目录,并在其目录下新建文件
mkdir registry-ui
touch docker-compose.yml
编辑docker-compose.yml
version: '3.0'
services:
registry:
image: registry
volumes:
- ./registry-data:/var/lib/registry
ui:
image: joxit/docker-registry-ui:static
ports:
- 8080:80
environment:
- REGISTRY_TITLE=私有仓库
- REGISTRY_URL=http://registry:5000
depends_on:
- registry
docker compose 服务之间访问使用服务名访问
执行docker-compose
docker-compose up -d
镜像推送、拉取
推送镜像到私有镜像服务必须先tag
tag本地镜像
名称前缀为私有仓库的地址:192.168.223.128:8080/
docker tag docker-compose-demo_gateway:latest 192.168.223.128:8080/docker-compose-demo_gateway:1.0
推送镜像
docker push 192.168.223.128:8080/docker-compose-demo_gateway:1.0
错误:
The push refers to repository [192.168.223.128:8080/docker-compose-demo_gateway]
Get "https://192.168.223.128:8080/v2/": http: server gave HTTP response to HTTPS client
原因:私服采用的是http协议,默认不被Docker信任,查看配置Docker信任地址是否配置正确
拉取镜像
docker pull 192.168.223.128:8080/docker-compose-demo_gateway:1.0