第 3 章 镜像 - 019 - 使用公共 Registry

保存和分发镜像的最直接方法就是使用 Docker Hub。https://hub.docker.com/

Docker Hub 是 Docker 公司维护的公共 Registry。用户可以将自己的镜像保存到 Docker Hub 免费的 repository 中。如果不希望别人访问自己的镜像,也可以购买私有 repository。

除了 Docker Hub,quay.io 是另一个公共 Registry,提供与 Docker Hub 类似的服务。

下面介绍如何用 Docker Hub 存取我们的镜像。

首先得在 Docker Hub 上注册一个账号。

在 Docker Host 上登录。

1 [email protected]:~# docker login -u gsophy
2 Password:
3 WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
4 Configure a credential helper to remove this warning. See
5 https://docs.docker.com/engine/reference/commandline/login/#credentials-store
6
7 Login Succeeded
8 [email protected]:~# 

输入密码后登录成功。

修改镜像的 repository 使之与 Docker Hub 账号匹配。

Docker Hub 为了区分不同用户的同名镜像,镜像的 registry 中要包含用户名,完整格式为:[username]/xxx:tag. 可以通过 docker tag 命令重命名镜像。

1 [email protected]:~# docker tag httpd:latest gsophy/docker.edu:v1
2 [email protected]:~# docker images gsophy/docker.edu:v1
3 REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
4 gsophy/docker.edu   v1                  ef1dc54703e2        12 days ago         132MB
5 [email protected]:~# 

注:Docker 官方自己维护的镜像没有用户名,比如 httpd。

通过 docker push 将镜像上传到 Docker Hub。

[email protected]:~# docker push gsophy/docker.edu:v1
The push refers to repository [docker.io/gsophy/docker.edu]
64446057e402: Layer already exists
13a694db88ed: Layer already exists
3fc0ec65884c: Layer already exists
30d0b099e805: Layer already exists
7b4e562e58dc: Layer already exists
v1: digest: sha256:246fed9aa9be7aaba1e04d9146be7a3776c9a40b5cfb3242d3427f79edee37db size: 1367

Docker
会上传镜像的每一层。Docker Hub
上已经有了全部的镜像层,所以真正上传的数据很少。同样的,如果我们的镜像是基于 base 镜像的,也只有新增加的镜像层会被上传。如果想上传同一
repository 中所有镜像,省略 tag 部分就可以了,例如:
docker push cloudman6/httpd

登录 https://hub.docker.com,在Public Repository 中就可以看到上传的镜像。

如果要删除上传的镜像,只能在 Docker Hub 界面上操作。

这个镜像可被其他 Docker host 下载使用了。

1 [email protected]:~# docker pull gsophy/docker.edu:v1
2 v1: Pulling from gsophy/docker.edu
3 177e7ef0df69: Pull complete
4 65e7b631411e: Pull complete
5 3249ef8b9272: Pull complete
6 43ed8fedd0f6: Pull complete
7 02d3f33bda9d: Pull complete
8 Digest: sha256:56ae0d287fc1bbb470a9773d1451d470c281850bf7ab4001d5b1335a94c033ed
9 Status: Downloaded newer image for gsophy/docker.edu:v1

---------------------引用来自-----------------------

https://mp.weixin.qq.com/s?__biz=MzIwMTM5MjUwMg==&mid=2653587623&idx=1&sn=1ad6234a72bb3d4840adf7d211e1888b&chksm=8d3080beba4709a8753bbba67c49928380cefd3eae4efdc78309b21e9c3220753a12d072dd37&scene=21#wechat_redirect

原文地址:https://www.cnblogs.com/gsophy/p/10238464.html

时间: 2024-10-25 01:44:39

第 3 章 镜像 - 019 - 使用公共 Registry的相关文章

第 3 章 镜像 - 020 - 搭建本地 Registry

Docker Hub 虽然非常方便,但还是有些限制,比如: 需要 internet 连接,而且下载和上传速度慢. 上传到 Docker Hub 的镜像任何人都能够访问,虽然可以用私有 repository,但不是免费的. 安全原因很多组织不允许将镜像放到外网. 解决方案就是搭建本地的 Registry. 在 Docker Hub 上也有官方的镜像 registry.我们可以在 Docker 中运行自己的 registry. 启动 registry 容器 1 [email protected]:~

使用公共 Registry - 每天5分钟玩转 Docker 容器技术(19)

保存和分发镜像的最直接方法就是使用 Docker Hub. Docker Hub 是 Docker 公司维护的公共 Registry.用户可以将自己的镜像保存到 Docker Hub 免费的 repository 中.如果不希望别人访问自己的镜像,也可以购买私有 repository. 除了 Docker Hub,quay.io 是另一个公共 Registry,提供与 Docker Hub 类似的服务. 下面介绍如何用 Docker Hub 存取我们的镜像. 首先得在 Docker Hub 上注

Docker:搭建私有镜像仓储(image registry)

搭建私有仓储,其实本质上也是运行了一个官方提供的(Registry)镜像的容器:生产环境中,我们要搭建自己的专有仓储 下载registry镜像 docker pull registry 运行镜像 docker run -d -p 5000:5000 registry 默认情况下,会将仓库存放于容器内的/tmp/registry目录下,这样如果容器被删除,则存放于容器中的镜像也会丢失,所以我们一般情况下会指定本地一个目录挂载到容器内的/tmp/registry下,如下: docker run -d

第11章:最长公共子序列(LCS:Longest Common Subsequence)

方法:动态规划 <算法导论>P208 最优子结构 + 重叠子问题 设xi,yi,为前i个数(前缀) 设c[i,j]为xi,yi的LCS的长度 c[i,j] = 0 (i ==0 || j == 0) c[i,j] = a[i-1,j-1] + 1 (i,j>0 &&xi=yi) c[i,j] = max(c[i,j-1],c[i-1,j]) 求LCS(Xm-1 , Y)的长度与LCS(X , Yn-1)的长度,这两 个问题不是相互独立的:两者都需要求LCS(Xm-1,Yn

第十五章 动态规划——最长公共子序列

1.基本概念 一个给定序列的子序列就是该给定序列中去掉零个或者多个元素的序列.形式化来讲就是:给定一个序列X={x1,x2,……,xm},另外一个序列Z={z1.z2.……,zk},如果存在X的一个严格递增小标序列<i1,i2……,ik>,使得对所有j=1,2,……k,有xij = zj,则Z是X的子序列.例如:Z={B,C,D,B}是X={A,B,C,B,D,A,B}的一个子序列,相应的小标为<2,3,5,7>.从定义可以看出子序列直接的元素不一定是相邻的. 公共子序列:给定两个

第 3 章 镜像 - 013 - Dockerfile 构建镜像

第一个 Dockerfile 1 FROM ubuntu 2 RUN apt-get update && apt-get install -y vim 运行 docker build 命令构建镜像并详细分析每个细节 1 [email protected]:~# pwd 2 /root 3 [email protected]:~# 4 [email protected]:~# cat Dockerfile 5 FROM ubuntu 6 RUN apt-get update &&am

第 3 章 镜像 - 015 - 调试 Dockerfile

如何 debug Dockerfile 通过 Dockerfile 构建镜像的过程 从 base 镜像运行一个容器 执行命令对容器做修改 执行类似 docker commit 的操作,生成一个新的镜像层 Docker 再基于刚刚提交的镜像运行一个新容器 重复 2-4 步,直到 Dockerfile 中的所有指令执行完毕 如果 Dockerfile 由于某种原因执行到某个指令失败了,我们也将能够得到前一个指令成功执行构建出的镜像,可以运行最新的这个镜像定位指令失败的原因. 举个例子 Dockerf

第 3 章 镜像 - 018 - 镜像命名的最佳实践

为镜像命名 创建镜像时 docker build 命令时已经为镜像取了个名字,例如:  docker build -t ubuntu-with-vi 这里的 ubuntu-with-vi 就是镜像的名字.通过 dock images 可以查看镜像的信息. 1 [email protected]:~# docker images ubuntu-with-vi 2 REPOSITORY TAG IMAGE ID CREATED SIZE 3 ubuntu-with-vi latest b5410df

算法Sedgewick第四版-第1章基础-019一Scanner的用法

1 package algorithms.fundamentals001; 2 3 import java.util.Locale; 4 import java.util.Scanner; 5 6 import algorithms.util.StdIn; 7 8 public class IsEquals { 9 10 // assume Unicode UTF-8 encoding 11 private static final String CHARSET_NAME = "UTF-8&qu