centos7搭建使用本地私有仓——Docker Registry
创建私有库
Docker Registry是官方提供的工具,可以用于构建私有镜像仓库,将本地镜像推送到私有库
运行私有库Registry,相当于本地有个私有Docker hub
[root@docker ~]# docker pull registry [root@docker ~]# docker run -d -p 5000:5000 -v /test/myregistry/:/tmp/registry --privileged=true registry
默认情况,仓库被创建在容器的/var/lib/registry目录下,建议自行用容器卷映射,方便于宿主机联调
curl验证私服库上有什么镜像
以下三种方式皆可
[root@docker ~]# curl -XGET http://192.168.1.13:5000/v2/_catalog [root@docker ~]# curl http://192.168.1.13:5000/v2/_catalog 推荐 [root@docker ~]# curl 192.168.1.13:5000/v2/_catalog
案例演示创建一个新镜像
ubuntu安装ifconfig命令
[root@docker ~]# docker run -it ubuntu /bin/bash
root@77e8ed23aab1:/# ifconfig bash: ifconfig: command not found root@77e8ed23aab1:/# apt-get update root@77e8ed23aab1:/# apt-get install net-tools root@77e8ed23aab1:/# ifconfig root@77e8ed23aab1:/# exit
[root@docker ~]# docker commit -m "add ifconfig ok" 77e8ed23aab1 myubuntu:v1.3 [root@docker ~]# docker images | grep ubuntu
将新镜像修改符合私服规范的Tag
docker tag 镜像:Tag Host:Port/Repository:Tag
使用命令 docker tag 将myubuntu:v1.3 这个镜像修改为192.168.1.12:5000/myubuntu:v1.3
[root@docker ~]# docker tag myubuntu:v1.3 192.168.1.13:5000/myubuntu:v1.3 [root@docker ~]# docker images | grep ubuntu
修改配置文件使之支持http
docker默认不允许http方式推送镜像,通过配置选项来取消这个限制
2个配置中间有个逗号 ','别漏了,这个配置是json格式的。
[root@docker ~]# cat /etc/docker/daemon.json { "registry-mirrors": ["https://xxxxxxxxx.mirror.aliyuncs.com"], "insecure-registries": ["192.168.1.13:5000"] } [root@docker ~]# systemctl daemon-reload [root@docker ~]# systemctl restart docker [root@docker ~]# systemctl status docker [root@docker ~]# docker ps [root@docker ~]# docker run -d -p 5000:5000 -v /test/myregistry/:/tmp/registry --privileged=true registry
push推送到私服库并验证
curl http://仓库IP:5000/v2/_catalog
curl http://仓库IP:5000/v2/镜像名称/tags/list
[root@docker ~]# docker images [root@docker ~]# docker push 192.168.1.13:5000/myubuntu:v1.3 查看镜像标签 [root@docker ~]# curl http://192.168.1.13:5000/v2/_catalog 查看镜像标签 [root@docker ~]# curl http://192.168.1.13:5000/v2/myubuntu/tags/list
pull到本地并运行
[root@docker ~]# docker rmi -f 192.168.1.13:5000/myubuntu:v1.3 删除本地镜像 [root@docker ~]# docker images | grep 192.168.1.13:5000/myubuntu
[root@docker ~]# docker pull 192.168.1.13:5000/myubuntu:v1.3 拉取私有仓库镜像 [root@docker ~]# docker images | grep 192.168.1.13:5000/myubuntu [root@docker ~]# docker run -it 0d519c8dab4b /bin/bash root@b0b1eb949e73:/# ifconfig
参考
尚硅谷2022版Docker实战教程 https://www.bilibili.com/video/BV1gr4y1U7CY https://www.yuque.com/tmfl/cloud/ay9g1r https://www.yuque.com/fairy-era/yg511q/lb7t23
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了