搭建 Docker私有仓库

老子叫甜甜 提交于 2020-02-05 09:25:15

Docker Hub

    目前 Docker 官方维护了一个公共仓库 Docker Hub,其中已经包括了数量超过 15000 的镜像。大部分需求都可以通过在 Docker Hub 中直接下载镜像来实现。

注册登录:

        可以在 https://hub.docker.com 免费注册一个 Docker 账号。

        在命令行界面执行 docker login 输入用户名及密码来完成在命令行界面登录 Docker Hub。

        可以通过 docker logout 退出登录。

拉取镜像:

        可以通过 docker search 命令来查找官方仓库中的镜像,并利用 docker pull 命令来将它下载到本地。

推送镜像:

        用户也可以在登录后通过 docker push 命令来将自己的镜像推动到 Docker Hub。

        docker 推送的镜像有命名规则,需要重新命名。

登录 Docker Hub,进行推送

登录 Docker Hub 就可以看见推送上去的镜像了。

 

私有仓库:

    有时候使用 Docker Hub 这样的公共仓库可能不太方便,用户可以创建一个本地仓库供私人使用。比如,基于公司内部项目构建的镜像。

    docker-registry 是官方提供的工具,可以用于构建私有的镜像仓库。

 

  • 安装运行 docker-registry

    • 可以通过获取官方 registry 镜像来运行。默认情况下,仓库会被创建在容器的 /var/lib/registry 目录下。

    • 可以通过 -v 参数来将镜像文件存放在本地的指定路径。

# docker 运行取名为 registry 后台运行 5000端口映射到数组机(服务器)5000端口 启动 挂载目录,把容器 /var/lib/registry 挂载到 数组机(服务器) /opt/data/regitry
docker run --name registry -d -p 5000:5000 --restart=always -v /opt/data/registry:/var/lib/registry registry

  • 在私有仓库上传、搜索、下载镜像

    • 创建好私有的仓库之后,就可以使用 docker tag 来标记一个镜像,然后推送它到仓库。

    • 现在本机查看已有的镜像。

docker image ls

 

  • 使用 docker tag 将 session-web:latest 这个镜像标记为 127.0.0.1:5000/session-web:latest 格式为 docker tag IMAGE[:TAG] [REGISTRY_HOST[:REGISTRY_PORT]/]REPOSITORY[:TAG]
docker tag session-web:latest 127.0.0.1:5000/session-web:latest
  • 使用 docker push 上传标记的镜像
docker push 127.0.0.1:5000/session-web:latest
  • 用 curl 查看仓库中的镜像
    curl 127.0.0.1:5000/v2/_catalog
    

        如果可以看到 {"repositories":["session-web"]} ,表明镜像已经被成功上传了。

  • 先删除已有镜像,再尝试从私有仓库中下载这个镜像。
    docker image rm 127.0.0.1:5000/session-web:latest
    docker pull 127.0.0.1:5000/session-web:latest
    

     

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!