docker search, pull, login, push with Docker Hub - public registry

docker HUB是一个公共的image registry, 不注册账号的话, 可以从docker hub下载public image.

docker search, pull操作不需要登录docker hub就可以对public image进行检索和下载.

如果需要将本地的image 推送到docker hub, 那么你需要注册一个docker hub的账号, 登录, 然后执行push即可.

docker hub的免费用户只能保存public image. 也就是说大家都能搜到并下载你的image.

例如 : 

登录docker hub

[root@db-172-16-3-221 ~]# docker login
Username: digoal
Password:
Email: xxx@xx.xx
Login Succeeded

登录后, 会把认证信息保存在.dockercfg文件中.

[root@db-172-16-3-221 ~]# cat ~/.dockercfg
{"https://index.docker.io/v1/":{"auth":"xxxxxxxxxxxx","email":"xxx@xx.xx"}}

查看当前正在运行的container, 例如我们这里有一个名为digoal的container.

[root@db-172-16-3-221 ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                CREATED             STATUS              PORTS               NAMES
ca64905e843a        postgres:9          /docker-entrypoint.s   3 hours ago         Up 3 hours          5432/tcp            digoal
aab6a732ddbc        postgres:9          /docker-entrypoint.s   20 hours ago        Up 20 hours         5432/tcp            happy_leakey
edae35acc741        postgres:9          /docker-entrypoint.s   20 hours ago        Up 20 hours         5432/tcp            lonely_mcclintock
7c99c4f4a01f        postgres:9          /docker-entrypoint.s   20 hours ago        Up 20 hours         5432/tcp            pensive_hoover
8238bc46c1da        postgres:9          /docker-entrypoint.s   20 hours ago        Up 20 hours         5432/tcp            grave_thompson     

我们把这个container打包成一个image, 把这个image放在digoal用户下.

[root@db-172-16-3-221 ~]# docker commit -a "digoal" -m "this is test" -p digoal digoal/postgres:9.3.5
a7ef5455170da413113de47917b3d4662e46d2835d69b28cfbe9aa919ff28804

查看本地的images, 就能看到刚才打包好的image: digoal/postgres:9.3.5

[root@db-172-16-3-221 ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
digoal/postgres     9.3.5               a7ef5455170d        7 seconds ago       212.9 MB
postgres            9.4-beta3           68b6ddf9ca08        8 days ago          213.6 MB
postgres            9.4                 68b6ddf9ca08        8 days ago          213.6 MB
postgres            9                   935836384c52        8 days ago          212.9 MB
postgres            latest              935836384c52        8 days ago          212.9 MB
postgres            9.3                 935836384c52        8 days ago          212.9 MB
postgres            9.3.5               935836384c52        8 days ago          212.9 MB
postgres            9.2.9               2a9ab0b9fa56        8 days ago          212.7 MB
postgres            9.2                 2a9ab0b9fa56        8 days ago          212.7 MB
postgres            9.1                 ee60947f6805        8 days ago          212.1 MB
postgres            9.1.14              ee60947f6805        8 days ago          212.1 MB
postgres            9.0.18              f29be88283f6        8 days ago          211.5 MB
postgres            9.0                 f29be88283f6        8 days ago          211.5 MB
postgres            8.4                 c57c14beb696        8 days ago          211 MB
postgres            8                   c57c14beb696        8 days ago          211 MB
postgres            8.4.22              c57c14beb696        8 days ago          211 MB
postgres            9.4-beta2           bf872395e1d4        2 weeks ago         213.6 MB

然后我们可以将这个image推送到docker hub. 同样是保存在我们登录的digoal用户下.

[root@db-172-16-3-221 ~]# docker push digoal/postgres:9.3.5
The push refers to a repository [digoal/postgres] (len: 1)
Sending image list
Pushing repository digoal/postgres (1 tags)
511136ea3c5a: Image already pushed, skipping
638fd9704285: Image already pushed, skipping
61f7f4f722fb: Image already pushed, skipping
759ce1ba8521: Image already pushed, skipping
05084fa93ca4: Image already pushed, skipping
b9c3e6ba73da: Image already pushed, skipping
e428b525362f: Image already pushed, skipping
74b9c5a96fe2: Image already pushed, skipping
a40cbed3d918: Image already pushed, skipping
adac4c321716: Image already pushed, skipping
c7dac22233f3: Image already pushed, skipping
b95ec4ff2ae8: Image already pushed, skipping
6d9ec1cd8a6f: Image already pushed, skipping
0778b2e9be29: Image already pushed, skipping
1a351aafeb1c: Image already pushed, skipping
789b1440f38b: Image already pushed, skipping
e849841ed55f: Image already pushed, skipping
ee9cafa51046: Image already pushed, skipping
15d042248df3: Image already pushed, skipping
935836384c52: Image already pushed, skipping
a7ef5455170d: Image successfully pushed
Pushing tag for rev [a7ef5455170d] on {https://cdn-registry-1.docker.io/v1/repositories/digoal/postgres/tags/9.3.5}

现在执行search可以检索到我们刚才提交的image.

[root@db-172-16-3-221 ~]# docker search digoal
NAME              DESCRIPTION   STARS     OFFICIAL   AUTOMATED
digoal/postgres                 0         

[参考]

1. https://docs.docker.com/userguide/dockerrepos/

时间: 2024-10-28 20:25:28

docker search, pull, login, push with Docker Hub - public registry的相关文章

Docker的Pull Digest和Image ID

docker的image id和digest 既然你看到这篇文章,你肯定已经用过Docker,并且Pull过镜像,所以下面这条命令你肯定不会陌生 # docker pull registry.aliyuncs.com/jiangjizhong/busybox:latest latest: Pulling from jiangjizhong/busybox 8ddc19f16526: Pull complete Digest: sha256:a59906e33509d14c036c8678d687

《循序渐进学Docker》——第2章 初步体验 Docker 2.1 Windows下安装Docker

第2章 初步体验Docker 上一章概括性地介绍了Docker的发展历史.组织结构.功能特性和使用场景等方面的内容.本章主要从实践的角度,介绍如何在本地搭建一个Docker运行环境. 由于大多数用户的个人电脑用的都是Windows系统,所以我们就先来讲讲在Windows环境下如何安装和运行Docker. 2.1 Windows下安装Docker 为了运行Docker,你的电脑必须安装64位Windows 7及以上版本的系统(包含Windows 8/8.1和Windows 10).另外,你要确保C

Docker 1.8:可信镜像、Toolbox、Registry 以及编排工具大更新

本文讲的是Docker 1.8:可信镜像.Toolbox.Registry 以及编排工具大更新,[编者的话]1.7 发布不到一个月 1.8 就重磅来袭.生产.生产还是生产,Docker 为了让自己能更适应生产环境进行了加速奔跑,我们也需要紧随技术的步伐不断前进. 我们很高兴的宣布 Docker 1.8 的发布,最新的版本包含了对镜像签名的支持,新的安装器以及 Engine.Compose.Swarm.Machine 以及 Registry 的多项改进. 你们过去总是和我们说想要一个扩展性更好的

【Docker官方文档】理解Docker

本文讲的是[Docker官方文档]理解Docker,[编者的话]本文来自Docker的官方文档,详细介绍了Docker的体系结构.重要概念.内部工作机理等内容,推荐不了解Docker内部原理的同学阅读. 什么是Docker? Docker是一个用于开发.交付和运行应用的开放平台,Docker设计用来更快的交付你的应用程序.Docker可以将你的应用程序和基础设施层隔离,并且还可以将你的基础设施当作程序一样进行管理.Docker可以帮助你更块地打包你代码.测试以及部署,并且也可以减少从编写代码到部

Docker入门教程(八)Docker Remote API

本文讲的是Docker入门教程(八)Docker Remote API,[编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第八篇,重点介绍了Docker Remote API. 在Docker系列教程的上一篇文章中,我们学习了Docker Hub 以及 Docker Registry API.在本文中,让我们来看看Docker Remote API. Docker Remote API Docker Remote API是一个取代远程命令行界面(rcl

Docker入门教程(七)Docker API

本文讲的是Docker入门教程(七)Docker API,[编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第七篇,重点介绍了Docker Registry API和Docker Hub API. 纵观我们的Docker系列教程,我们已经讨论了很多重要的Docker组件与命令.在本文中,我们将继续深入学习Docker:剖析Docker APIs. Docker提供了很多的API以便用户使用.这些API包含四个方面: Docker Registry AP

Docker的安装方法及运行Docker Swarm模式的使用_docker

Docker简介 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何接口. 概要 docker就给简单介绍这么多,这里主要说说docker swarm. docker engine本身只提供了容器技术,没有解决集群环境下的容器编排和通信.docker swarm是一个容器编排管理工具,docker-engine在1.12版本之后集成了docker

在Hyper-V的Docker主机上使用Visual Studio Docker工具

本文讲的是在Hyper-V的Docker主机上使用Visual Studio Docker工具[编者的话]本文主要介绍了在Windows下使用Hyper-V和Visual Studio来进行容器化的实践,及遇到的问题和相应解决方法. 在过去的几周,我一直在研究使用Visual Studio的Docker工具来将ASP.NET核心应用容器化.这使得你可以在Docker容器内本地开发和调试应用.为了实现这个目标,你需要一个本地的Docker主机.虽然你可以向IT部门申请提供一个,但是发现在我笔记本上

Docker入门教程(四)Docker Registry

本文讲的是Docker入门教程(四)Docker Registry,[编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第四篇,介绍了Docker Registry,它是Docker中的重要组件.本文通过情景演绎的方式对其进行了介绍,图文并茂,强烈推荐读者阅读. 在Docker系列教程的上一篇文章中,我们讨论了Dockerfile的重要性并提供了一系列Dockerfile的命令,使镜像的自动构建更加容易.在这篇文章中,我们将介绍Docker的一个重要组件