仓库是集中存放镜像的地方,仓库的概念不要与注册服务器做混淆。注册服务器是存放仓库的具体服务器,每个服务器上可能有多个仓库,一个仓库有多个镜像。

仓库又可分为共有仓库和私有仓库,最大的共有仓库即Docker官方提供的DockerHub。

一、Docker Hub

此为官方提供的和维护的最大公共仓库,地址为 https://hub.docker.com

1、登录

我们可以使用 docker login 命令来登录,该命令过程需要输入用户名、密码和邮箱来完成注册和登录,之后这些信息保存在本地的 .dockercfg 文件中。

# 0. 使用 docker login 命令登录DockerHub
$ sudo docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: cq1415583094
Password:
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded # 1. 查看本地配置文件

2、基本操作

登录之后,我们即可使用 docker search 命令来查找官方仓库中的镜像文件,找到后使用 docker pull 命令将镜像下载到本地。

# 0. 从官方仓库中查找 centos 镜像
$ sudo docker search centos
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
centos The official build of CentOS. 5925 [OK]
ansible/centos7-ansible Ansible on Centos7 128 [OK]
... # 1. 将官方提供的镜像下载到本地
$ sudo docker pull centos
Using default tag: latest
latest: Pulling from library/centos
8a29a15cefae: Pull complete
Digest: sha256:fe8d824220415eed5477b63addf40fb06c3b049404242b31982106ac204f6700
Status: Downloaded newer image for centos:latest
docker.io/library/centos:latest # 2. 将刚才下载的上传到仓库
# 2.1 将刚才的镜像tag做修改
$ sudo docker tag centos:latest cq1415583094/centos:latest
# 2.2 上传自己的镜像
$ sudo docker push cq1415583094/centos:latest
The push refers to repository [docker.io/cq1415583094/centos]
0683de282177: Mounted from library/centos
latest: digest: sha256:9e0c275e0bcb495773b10a18e499985d782810e47b4fce076422acb4bc3da3dd size: 529 # 3. 搜索自己的centos
$ sudo docker search cq1415583094/centos

3、自动创建

当我们创建了镜像,安装了软件,当此时软件发布了新的版本,若要更新则需要我们手动更新镜像。而Docker为我们提供了自动创建的过程。

不过在使用该功能时,需要我们通过DockerHub指定跟踪一个目标网站(支持GitHub/BitBucket)上的项目,若发现项目有新的提交则自动创建。关于配置自动创建步骤如下:

  1. 创建并登录DockerHub以及目标网站。并在目标网站连接账户到DockerHub。

  2. 在DockerHub上配置一个自动创建。

  3. 选取一个目标网站上的项目和分支。当然该项目需要含Dockerfile。

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

二、DaoCloud

Docker官方仓库有时访问比较慢,此时可以使用国内提供的仓库,目前国内的仓库有DaoCloud,地址为 https://hub.daocloud.io/ ,在仓库中可以搜索到centos的各个版本。

# 从DaoCloud仓库拉取centos7镜像
$ sudo docker pull daocloud.io/library/centos:7
ab5ef0e58194: Pull complete
Digest: sha256:285bc3161133ec01d8ca8680cd746eecbfdbc1faa6313bd863151c4b26d7e5a5
Status: Downloaded newer image for daocloud.io/library/centos:7
daocloud.io/library/centos:7 # 查看镜像
$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
daocloud.io/library/centos 7 5e35e350aded 4 months ago 203MB

三、创建和使用私有仓库

公司中一般都有自己的一个私有仓库,对于私有仓库中的镜像也只是公司内部使用。那么我们就来创建一个私有仓库。

1、使用registry镜像创建私有仓库

# 0. 使用 registry 镜像来搭建私有仓库, 并将容器中的 5000端口对应系统的 5000端口
$ sudo docker run -d -p 5000:5000 registry

这样我们的私有仓库即搭建完成,对应的地址为 192.168.0.128:5000

2、管理私有仓库镜像

2.1、上传镜像到私有仓库

# 0. 查看本地cnetos镜像
$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
centos 7 5e35e350aded 4 months ago 203MB # 1. 修改tag为私有仓库的tag
$ sudo docker tag centos:7 192.168.0.128:5000/centos:7
$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
test/ubuntu v1.0 0f5b15a68f76 14 hours ago 64.2MB
test latest e5bc93985af0 2 days ago 64.2MB
user/test latest e5bc93985af0 2 days ago 64.2MB
ubuntu latest 4e5021d210f6 2 weeks ago 64.2MB
registry latest 708bc6af7e5e 2 months ago 25.7MB
cq1415583094/centos latest 470671670cac 2 months ago 237MB
centos latest 470671670cac 2 months ago 237MB
daocloud.io/library/centos 7 5e35e350aded 4 months ago 203MB
centos 7 5e35e350aded 4 months ago 203MB
[root@localhost opt]# sudo docker tag centos:7 192.168.0.128:5000/centos:7
[root@localhost opt]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
192.168.0.128:5000/centos 7 5e35e350aded 4 months ago 203MB # 2. 使用 docker push 命令上传
$ sudo docker push 192.168.0.128:5000/centos # 说明:有时在push中会报https错 这因为是docker私有仓库服务器,默认是基于https传输的,所以我们需要在客户端做相关设置,不使用https传输。
$ vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://hub.docker.com"],
"insecure-registries":["192.168.0.128:5000"]
}
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker

五、【Docker笔记】Dockers仓库的更多相关文章

  1. Docker笔记2:Docker 镜像仓库

    Docker 镜像的官方仓库位于国外服务器上,在国内下载时比较慢,但是可以使用国内镜像市场的加速器(比如阿里云加速器)以提高拉取速度. Docker 官方的镜像市场,可以和 Gitlab 或 GitH ...

  2. Docker笔记(十一):Dockerfile详解与最佳实践

    Dockerfile是一个文本文件,包含了一条条指令,每条指令对应构建一层镜像,Docker基于它来构建一个完整镜像.本文介绍Dockerfile的常用指令及相应的最佳实践建议. 1. 理解构建上下文 ...

  3. Docker笔记(四):Docker镜像管理

    原文地址:http://blog.jboost.cn/2019/07/16/docker-4.html 在Docker中,应用是通过容器来运行的,而容器的运行是基于镜像的,类似面向对象设计中类与对象的 ...

  4. Docker笔记(八):数据管理

    前面(哪个前面我也忘了)有说过,如果我们需要对数据进行持久化保存,不应使其存储在容器中,因为容器中的数据会随着容器的删除而丢失,而因通过将数据存储于宿主机文件系统的形式来持久化.在Docker容器中管 ...

  5. Docker笔记(九):网络管理

    Docker的应用运行在容器中,其相互之间或与外部之间是如何通信的,涉及到哪些知识点,本文对相关内容进行整理.因网络这块牵涉的面较多,因此只从日常使用或理解的角度出发,过于专业的就不深入探讨了. 1. ...

  6. k8s kubernetes 核心笔记 镜像仓库 项目k8s改造(含最新k8s v1.16.2版本)

    k8s kubernetes 核心笔记 镜像仓库 项目k8s改造 2019/10/24 Chenxin 一 基本资料 一 参考: https://kubernetes.io/ 官网 https://k ...

  7. Docker镜像的仓库及底层依赖的核心技术(3)

    一.docker镜像的仓库 仓库分为公共仓库和私有仓库 DockerHub的官方仓库:https://hub.docker.com DockerPool社区仓库:https://dl.dockerpo ...

  8. Docker笔记--镜像&基于GO项目创建Docker镜像

    Docker笔记--镜像&基于GO项目创建Docker镜像 核心概念 Doker镜像--包含一个基本的操作系统运行环境和应用程序,镜像是创建Docker容器的基础. Docker容器--如果把 ...

  9. 第四章 使用Docker镜像和仓库(二)

    第四章 使用Docker镜像和仓库(二) 回顾: 开始学习之前,我先pull下来ubuntu和fedora镜像 [#9#cloudsoar@cloudsoar-virtual-machine ~]$s ...

  10. 第四章 使用Docker镜像和仓库

    第4章 使用Docker镜像和仓库 回顾: 回顾如何使用 docker run 创建最基本的容器 $sudo docker run -i -t --name another_container_mum ...

随机推荐

  1. web页面上展示图片时,图片不显示,报错:ERR_CONTENT_LENGTH_MISMATCH

      问题描述 前端页面加载css,和js文件的时候,经常出现ERR_CONTENT_LENGTH_MISMATCH的报错情况.   查找问题 在单独打开hearder中css,js的网络地址是能打开的 ...

  2. 小程序Echarts 构建中国地图并锚定区域点击事件

    小程序Echarts 构建中国地图并锚定区域点击事件 Step1 效果展示 使用的绘图框架为 Echarts for Wexin 具体API文档地址请点击 ----> Step2 条件准备 1. ...

  3. fork他人仓库文件及修改整合

    1.首先使用浏览器打开自己的GitHub地址,并打开即将fork的文件地址(别人的文件地址),在其右上方找到fork选项并点击即可 2.在自己的电脑上创建一个文件夹后使用git bush here的C ...

  4. CSS3新单位vw,vh,vmin,vmax详解

    1,vw,vh,vmin,vmax是由视窗Viewport大小来决定的,单位1,代表1%,是一种相对单位,只要是为响应式适配视窗的一种解决方案: vw:view width(视窗宽度)的百分比,1vw ...

  5. cocos2d-x android 入门

    前一段时间使用传统方式做了一个CS软件,发现 UI 显示的比较慢,突发奇起,开始研究起来 GPU 加速,最后开始学习 cocos2dx. 开发环境以最新的 Cocos2d-x 3.17.1 Andro ...

  6. 【面试经验分享】java面试中的那些潜规则

    1.大纲 潜规则1:面试的本质不是考试,而是告诉面试官你会做什么 很多刚入行的小伙伴特别容易犯的一个错误,不清楚面试官到底想问什么,其实整个面试中面试官并没有想难道你的意思,只是想通过提问的方式来知道 ...

  7. FSBPM流程引擎(002)之表单+自定义流程挂载到引擎

    本章节介绍如何将实际业务的表单和自定义流程挂载到FSBPM流程引擎上. 首先进入引擎交互界面: 点击创建:->出差申请 然后根据实际的业务输入对应的数据项即可,比如[姓名,部门,开始时间,结束时 ...

  8. [python]回答百度知道上的问题2000-2999之间的回文日

    因为百度知道的编辑器没有提供代码功能,将回复写入. 题目如下: 求2000到2999的所有回文日,例如20200202 用Python怎么做 回文年好求,回文日的话,年月日这咋存啊 思路一:遍历每一天 ...

  9. axios请求拦截器

    import axios from 'axios';   // 创建axios实例   let service = null;   if (process.env.NODE_ENV === 'deve ...

  10. Docker Compose 文件讲解

    Docker Compose 是什么 官方文档: Docker Compose是定义和运行多容器 Docker 应用程序的工具.使用"Compose",您可以使用 YAML 文件来 ...