使用Docker官方的Registry镜像搭建私有仓库
一、安装
1.拉取私有仓库镜像
docker pull registry2
2.创建启动私有仓库容器
mkdir -pv /usr/local/docker-registry
docker run -itd -v /usr/local/docker-registry:/var/lib/registry -p 5000:5000 -e REGISTRY_STORAGE_DELETE_ENABLED="true" --restart=always --name docker-registry registry:2
参数说明
- -dit:在容器中打开一个伪终端进行交互操作,并在后台运行
- -v:把宿主机的/data/registry目录挂载到容器/var/lib/registry目录(这个目录是registry容器中存放镜像文件的目录),来实现数据的持久化
- -p:映射端口,访问宿主机的5000端口就访问到registry容器的服务了
- --restart=always:这是重启的策略,假如这个容器异常退出会自动重启容器
- --name docker-registry:创建容器命名为docker-registry,你可以随便命名
访问:http://192.168.100.16:5000/v2/_catalog,响应结果如下:
{"repositories":[]}
此刻docker私有仓库既创建完成并且启动成功。
二、验证
镜像上传至私有仓库
docker tag hello-world 192.168.100.16:5000/hello-world:v1
docker push 192.168.100.16:5000/hello-world:v1
问题及解决方案:
1、默认docker-registry只允许https提交镜像,如下配置使docker-registry支持http,在/etc/docker下,修改daemon.json文件,追加写入:"insecure-registries": [ "192.168.100.16:5000"]
vim /etc/docker/daemon.json
追加后
{
"registry-mirrors": [ "https://registry.docker-cn.com"],
"insecure-registries": [ "192.168.100.16:5000"]
}
2、重启docker
systemctl restart docker
目前只是通过命令操作管理,后期会引用harbor管理界面管理
参考文章: