1、拉取registry镜像
docker pull registry
2、创建并启动registry容器
docker run -d -p 5000:5000 -v /mydata/docker/registry/:/tmp/registry --privileged=true registry
3、基于容器生成一个新镜像
公式:docker commit -m="提交的描述信息" -a="作者" 容器ID 要创建的目标镜像名:版本号
docker commit -m"add vim" -a="shendian" 2623a1551689 shendian/ubuntu:1.0
4、将本地镜像改为符合私有仓库的规范
公式:docker tag 镜像名:版本号 宿主机IP:端口号/镜像名:版本号(端口号为registry容器映射给宿主机的那个端口)
docker tag shendian/ubuntu:1.0 192.168.56.104:5000/shendian/ubuntu:1.0
5、查看下此时存在的镜像及运行中的容器
![image]()
6、查看下当前私有仓库有哪些镜像可使用
curl -XGET http://192.168.56.104:5000/v2/_catalog
此处遇到一坑:总是报找不到主机路由
原因:linux内核和docker有冲突
解决:yum update -y
![image]()
7、修改配置文件vim /etc/docker/daemon.json
docker 默认只支持https推送镜像到私有仓库
增加配置,使docker支持http推送镜像:
"insecure-registries": ["192.168.56.104:5000"]
![image]()
8、重启docker
systemctl restart docker
重启docker后,记得把registry容器启动
9、推送本地镜像
docker push 192.168.56.104:5000/shendian/ubuntu:1.0
![image]()
10、再次查看私有仓库有什么镜像
![image]()
11、便于查看,把不需要镜像删除了,查看此时镜像 及 运行中容器
![image]()
12、从docker私有仓库拉取镜像
docker pull 192.168.56.104:5000/shendian/ubuntu:1.0
![image]()
13、创建并启动容器
![image]()