将本地镜像推送到私有库

一、下载docker registry

docker pull registry

二、运行私有库registry,相当于本地有个私有Docker hub

docker run -d -p 5000:5000 -v /test:/tmp/registry --privileged=true registry
*注: 默认情况,仓库被创建在容器的/var/liblregistry目录下,建议自行用容器卷映射,方便于宿主机联调

三、提交定制容器成为一个新镜像

  1. 启动一个容器

    docker run
    
  2. 在该容器内安装自己需要的工具

  3. 通过docker commit命令提交该容器,使之成为一个新镜像

    docker commit -m="描述说明" -a="作者" 容器id 要创建的镜像名称:TAG
    

四、将创建的新镜像,提交到本地的私有库registry中

  1. curl验证私服库上有什么镜像(在容器 外运行)

    curl -XGET http://本地ip:5000/v2/_catalog
    
  2. 将新镜像修改符合私服规范的Tag

    docker tag 新镜像名称:TAG 本地IP:5000/提交后的镜像名称:TAG
    
  3. 取消docker默认不允许http方式推送镜像

    vi /etc/docker/deamon.json
    {
    "registry-mirrors": ["https://*****.mirror.aliyuncs.com"],
    "insecure-registries": ["本地IP:5000"]
    }
    

    *注:若修改不生效,建议重启docker【$ systemctl restart docker】

  4. 若重启了docker,需要重新启动Registry私服仓库

    docker run -d -p 5000:5000 -v /test:/tmp/registry --privileged=true registry
    
  5. 推送本地镜像到私服库

    docker push 推送镜像名称:TAG
    

五、验证

  1. curl验证私服库上镜像是否推送成功(在容器外运行)

    curl -XGET http://本地ip:5000/v2/_catalog
    
  2. 删除本地用于推送的新镜像

    docker rmi -f 镜像名称:TAG
    
  3. 拉取私服上的镜像

    docker pull 本地IP/要拉取的镜像名称:TAG
    
posted @   杨先生ㄨ  阅读(67)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示