Docker搭建Registry私库
1.创建Docker挂载目录
mkdir /data/lib/registry
2.启动Docker镜像
// 启动Registry镜像,Docker会自动去hub.docker.com拉取registry:2镜像
docker run -d -p 5000:5000 --restart=always --name registry -v /data/lib/registry:/var/lib/registry registry:2
发布和拉取Registry镜像
1.从Docker Hub拉取一个镜像,也可以通过Dockerfile构建一个镜像
docker pull maven:3.6.3-jdk-14 // 示例镜像,可以是其他镜像
2.将镜像发布到Registry
docker tag maven:3.6.3-jdk-14 ip:5000/my-maven // 将ip改成registry ip
docker push ip:5000/my-maven // 将ip改成registry ip
发布镜像时产生了"http:server gave HTTP response to HTTPS client"错误,这是因为服务器是http协议,客户端是https协议,认为我们私有的registry是不可信任的,可以通过在daemon.json文件增加insecure-registries配置解决这个报错
// vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://registry.docker-cn.com"],
"insecure-registries":["ip:5000"]
}
修改后,重新启动Docker
sudo service docker restart
重新发布镜像,便可发布成功了
可通过http://ip:5000/v2/_catalog 查看私库中的镜像
3.拉取镜像
docker image rm ip:5000/my-maven // 将ip改成registry ip,删除镜像,若与发布镜像的不在同一台服务器(不存在该镜像),则不需要这步
docker image rm maven:3.6.3-jdk-14 // 将ip改成registry ip,删除镜像,若与发布镜像的不在同一台服务器(不存在该镜像),则不需要这步
docker pull ip:5000/my-maven // 拉取镜像
docker image ls // 查看镜像是否拉取成功