您的位置:首页 > 运维架构 > Docker

Docker:07---镜像与仓库之(私有Registry的创建与使用)

2020-07-16 22:07 441 查看

一、运行私有的Docker Registry

  • 显然,拥有 Docker 镜像的一个公共的 Registry 非常有用,但是,有时候我们可能希望构建和存储包含不想被公开的信息或数据的镜像。这时候我们有以下两种选择: 利用 Docker Hub 上的私有仓库(本文介绍的)
  • 在代理/防火墙后运行我们自己的 Registry(可以使用HTTPS_PROXY、HTTP_PROXY、NO_PROXY等选项来控制Docker如何连接)
  • 感谢 Docker 公司的团队开源了他们用于运行 Docker Registry 代码,这样我们就可以基于此代码在内部运行自己的 Registry
  • 目前 Registry 还不支持用户界面,只能以 API 服务的方式来运行
  • 二、运行Registry镜像

    • 从Docker容器安装一个Registry非常简单,命令如下:
    [code]# 运行基于容器的Registry
    sudo docker run -p 5000:5000 registry:2

    备注:从Dokcer1.3.1开始,需要在启动Docker守护进程的命令中添加--insecure-registry localhost:5000标志,并重启守护进程,才能使用本地Registry

    • 上面的命令会启动一个运行Registry应用2.0版本的容器,并将5000端口绑定到本地宿主机上

    备注:如果用户正在运行一个版本低于2.0的Docker Registry,那么可以使用Docker Registry迁移工具(http://github.com/docker/migrator)升级到新版的Registry

    三、测试新Registry

    • 如何使用新的Registry呢?下面来看看将本地的jamtur01/static_web上传到我们的新Registry上去
    • 首先查看一下ubuntu:16.04镜像的ID
    [code]sudo docker images ubuntu

    • 接着,我们找到镜像ID,即c522ac0d6194,并使用新的Registry给该镜像打上标签。为了制定新的Registry目的地址,需要在镜像名前加上主机名和端口前缀。在这个例子里,我们的Registry主机名为localhost。命令如下:
    [code]sudo docker tag c522ac0d6194 localhost:5000/dongshao/ubuntu
    • 为镜像打完标签之后,就能通过docker psuh命令将它推送到新的Registry中去了,命令如下:
    [code]sudo docker push localhost:5000/dongshao/ubuntu
    • 这个镜像就被提交到了本地的Registry中,并且可以将其用于使用docker run命令构建新容器,命令如下:
    [code]sudo docker run -t -i localhost:5000/dongshao/ubuntu /bin/bash
    • 从本地Registry拉取镜像的命令如下:
    [code]sudo docker pull localhost:5000/dongshao/ubuntu

    四、总结

    • 这是在防火墙后面部署自己的Docker Registry的最简单的方式。我们并没有解释如何配置或者管理Registry。如果想要深入了解如何配置认证和管理后端镜像存储方式,以及如何管理Registry等详细信息,可以在Docker Registry部署文档查看完整的配置和部署说明:https://docs.docker.com/registry/configuration/
    内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
    标签: