资讯专栏INFORMATION COLUMN

Docker零基础入门指南(五):Docker仓库使用

silenceboy / 1147人阅读

摘要:原文地址零基础入门指南五仓库是集中存放镜像的地方。最常使用的公开服务是官方的,这也是默认的,并拥有大量的高质量的官方镜像。登录可以通过执行命令交互式的输入用户名及密码来完成在命令行界面登录。使用将这个镜像标记为。

原文地址:Docker零基础入门指南(五)

仓库( Repository )是集中存放镜像的地方。一个容易混淆的概念是注册服务器( Registry )。实际上注册服务器是管理仓库的具体服务器,每个服务器上可以有多个仓库,而每个仓库下面有多个镜像。从这方面来说,仓库可以被认为是一个具体的项目或目录。例如对于仓库地址 dl.dockerpool.com/ubuntu 来说,dl.dockerpool.com 是注册服务器地址, ubuntu 是仓库名。

Docker Registry

Docker Registry用来提供集中的存储、分发镜像的服务。
一个 Docker Registry 中可以包含多个仓库(Repository);每个仓库可以包含多个标签(Tag);每个标签对应一个镜像。
通常,一个仓库会包含同一个软件不同版本的镜像,而标签就常用于对应该软件的各个版本。我们可以通过 <仓库名>:<标签> 的格式来指定具体是这个软件哪个版本的镜像。如果不给出标签,将以 latest 作为默认标签。

以 Ubuntu 镜像 为例,ubuntu 是仓库的名字,其内包含有不同的版本标签,如,14.04, 16.04。我们可以通过 ubuntu:14.04,或者 ubuntu:16.04 来具体指定所需哪个版本的镜像。如果忽略了标签,比如 ubuntu,那将视为 ubuntu:latest。

仓库名经常以 两段式路径 形式出现,比如 jwilder/nginx-proxy,前者往往意味着 Docker Registry 多用户环境下的用户名,后者则往往是对应的软件名。但这并非绝对,取决于所使用的具体 Docker Registry 的软件或服务。

Docker Hub

最常使用的 Registry 公开服务是官方的 Docker Hub,这也是默认的 Registry,并拥有大量的高质量的官方镜像。

注册

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

登录

可以通过执行 docker login 命令交互式的输入用户名及密码来完成在命令行界面登录Docker Hub。可以通过 docker logout 退出登录。

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

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

自动创建
自动创建(Automated Builds)功能对于需要经常升级镜像内程序来说,十分方便。有时候,用户创建了镜像,安装了某个软件,如果软件发布新版本则需要手动更新镜像。而自动创建允许用户通过 Docker Hub 指定跟踪一个目标网站(目前支持 GitHub 或 BitBucket)上的项目,一旦项目发生新的提交或者创建新的标签(tag),Docker Hub 会自动构建镜像并推送到 Docker Hub 中。要配置自动创建,包括如下的步骤:

创建并登录 Docker Hub,以及目标网站;

在目标网站中连接帐户到 Docker Hub

在 Docker Hub 中 配置一个自动创建

选取一个目标网站中的项目(需要含 Dockerfile )和分支

指定 Dockerfile 的位置,并提交创建

之后,可以在 Docker Hub 的 自动创建页面 中跟踪每次创建的状态。

私有 Docker Registry

除了使用公开服务外,用户还可以在本地搭建私有 Docker Registry。Docker 官方提供了 Docker Registry 镜像,可以直接使用做为私有 Registry 服务。
docker-registry 是官方提供的工具,可以用于构建私有的镜像仓库。以下内容基于dockerregistry v2.x 版本。

安装运行 docker-registry
可以通过获取官方 registry 镜像来运行

$ docker run -d -p 5000:5000 --restart=always --name registry registry

这将使用官方的 registry 镜像来启动私有仓库。默认情况下,仓库会被创建在容器的/var/lib/registry 目录下。可以通过 -v 参数来将镜像文件存放在本地的指定路径。

$ docker run -d 
-p 5000:5000 
-v /opt/data/registry:/var/lib/registry 
registry

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

创建好私有仓库之后,就可以使用 docker tag 来标记一个镜像,然后推送它到仓库。例如私有仓库地址为 127.0.0.1:5000 。

先在本机查看已有的镜像。

$ docker image ls
REPOSITORY TAG IMAGE ID CREATED
VIRTUAL SIZE
ubuntu latest ba5877dc9bec 6 weeks ago
192.7 MB

使用 docker tag 将 ubuntu:latest 这个镜像标记为 127.0.0.1:5000/ubuntu:latest 。
格式为 docker tag IMAGE[:TAG] [REGISTRY_HOST[:REGISTRY_PORT]/]REPOSITORY[:TAG]

$ docker tag ubuntu:latest 127.0.0.1:5000/ubuntu:latest
$ docker image ls
REPOSITORY TAG IMAGE ID CREATED
VIRTUAL SIZE
ubuntu latest ba5877dc9bec 6 weeks ago
192.7 MB
127.0.0.1:5000/ubuntu:latest latest ba5877dc9bec 6 weeks ago
192.7 MB

使用 docker push 上传标记的镜像。

$ docker push 127.0.0.1:5000/ubuntu:latest
The push refers to repository [127.0.0.1:5000/ubuntu]
373a30c24545: Pushed
a9148f5200b0: Pushed
cdd3de0940ab: Pushed
fc56279bbb33: Pushed
b38367233d37: Pushed
2aebd096e0e2: Pushed
latest: digest: sha256:fe4277621f10b5026266932ddf760f5a756d2facd505a94d2da12f4f52f71f5
a size: 1568

用 curl 查看仓库中的镜像。

$ curl 127.0.0.1:5000/v2/_catalog
{"repositories":["ubuntu"]}

这里可以看到 {"repositories":["ubuntu"]} ,表明镜像已经被成功上传了。

先删除已有镜像,再尝试从私有仓库中下载这个镜像。

$ docker image rm 127.0.0.1:5000/ubuntu:latest
$ docker pull 127.0.0.1:5000/ubuntu:latest
Pulling repository 127.0.0.1:5000/ubuntu:latest
ba5877dc9bec: Download complete
511136ea3c5a: Download complete
9bad880da3d2: Download complete
25f11f5fb0cb: Download complete
ebc34468f71d: Download complete
2318d26665ef: Download complete

(本文出自itcsdaixie.com,转载请注明出处)

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/27320.html

相关文章

  • Docker基础入门指南(三):Docker Hello World

    摘要:原文地址零基础入门指南三允许你在容器内运行应用程序,使用命令来在容器内运行一个应用程序。由于官方提供的文件,都放在组里面,所以它的是默认组,可以省略。如果发现本地没有指定的文件,就会从仓库自动抓取。因此,前面的命令并不是必需的步骤。 原文地址:Docker零基础入门指南(三) Docker Hello World Docker 允许你在容器内运行应用程序, 使用 docker run...

    tracymac7 评论0 收藏0
  • Docker基础入门指南(四):Docker容器使用

    摘要:原文地址零基础入门指南四启动容器启动容器有两种方式,一种是基于镜像新建一个容器并启动,另外一个是将在终止状态的容器重新启动。此外,当容器中指定的应用终结时,容器也自动终止。命令命令用于进入一个正在运行的容器。 原文地址:Docker零基础入门指南(四) 启动容器 启动容器有两种方式,一种是基于镜像新建一个容器并启动,另外一个是将在终止状态(stopped)的容器重新启动。因为Docke...

    mj 评论0 收藏0
  • Docker学习之路()镜像的基本操作

    摘要:一个镜像可以放到另一个京广线的顶部,位于下面的镜像称为父镜像,最底部的称为基础镜像。镜像是基于联合文件系统的一种层式的结构,由一系列指令一步步构建处理。拉取镜像使用命令启动一个镜像时,会检查本地是否存在该镜像。 什么是镜像 Docker镜像时由文件系统叠加而成,最底端是一个引导文件系统,即bootfs,这很像典型的Linux/Unix的引导文件系统。Docker用户几乎永远不会和引导...

    yunhao 评论0 收藏0
  • Docker 快速上手学习入门教程

    摘要:各组件结构下载安装启动的官方文档上提供了非常详细的安装流程,简单摘录在上下载社区版并安装的操作命令当控制台输出加一大段介绍文字时,安装就大功告成了。 原文链接:http://tabalt.net/blog/docker... Docker是一个使用Golang开发的开源应用容器引擎,让开发者可以打包应用和依赖到一个轻量级、可移植的镜像中,然后分发到任何流行的Linux机器上,并在这些机...

    leanxi 评论0 收藏0
  • Docker基础入门指南(一):Docker介绍

    摘要:原文地址零基础入门指南一介绍简介源代码托管在上,公司开源的一个基于技术之上构建的容器引擎,基于语言并遵从协议开源。通过等实现内核虚拟化技术,并提供容器的资源隔离与安全保障等。 原文地址:Docker零基础入门指南(一):Docker介绍 Docker简介 Docker源代码托管在 GitHub上,Docker 公司开源的一个基于LXC技术之上构建的Container容器引擎,基于Go...

    DevTTL 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<