一、创建本地私有仓库
# 拉取私有库registry到本地,registry相当于本地Docker Hub
docker pull registry
# 运行registry镜像,将registry文件映射到本地路径C:\Users\39824\test\registry(可自定义配置)
# 默认情况下仓库被创建在容器的/var/lib/registry目录下,建议自行容器卷映射,方便于宿主机联调
docker run -d -p 5000:5000 -v /mnt/c/Users/39824/test/registry/:/temp/registry --privileged=true registry
二、示例(将ubuntu放到私有库内)
1.获取个性化后的ubuntu镜像
# 拉取ubuntu镜像
docker pull ubuntu
# 运行ubuntu
docker run -it ubuntu /bin/bash
# 安装的ubuntu中没有ifconfig命令等,安装工具
apt-get update
apt-get install net-tools
# 测试命令
ifconfig
# 确认完毕,退出
ctrl+q+p
# 将改好的容器重新打包成镜像
docker commit -m="ifconfig add" -a="test" 3d3affc89e59 new_ubuntu:new
2.查看私有仓库
# 查看私有仓库中镜像内容,目前返回的是空,证明里面没有任何镜像
# 这里localhost可以通过ifconfig查看本地ip进行替换
curl -XGET http://localhost:5000/v2/_catalog
ifconfig
curl -XGET http://172.27.64.169:5000/v2/_catalog
3.标准个性化ubuntu镜像名称(私有仓库镜像规范)
# 将镜像重命名成新的镜像(私有库规范镜像名:ip:host/镜像名:tag)
docker tag new_ubuntu:new 172.27.64.169:5000/new_ubuntu:new
4.修改配置,支持http方式推送镜像
# docker默认不支持http方式推送镜像,可以通过\etc\docker\daemon.json配置进行修改。
# 增加insecure-registries配置即可,配置好后重启docker
systemctl restart docker
# 启动registry
docker run -d -p 5000:5000 -v /mnt/c/Users/39824/test/registry/:/temp/registry --privileged=true registry
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"],
"insecure-registries": ["172.27.64.169:5000"]
}
5.推送个性化ubuntu到私有仓库
docker push 172.27.64.169:5000/new_ubuntu:new
6.验证私服镜像
curl -XGET http://172.27.64.169:5000/v2/_catalog
7.下载私有库中的镜像到本地使用
docker pull 172.27.64.169:5000/new_ubuntu:new
这里我清理了下docker,删除了易混淆的镜像,进行拉取的。