本篇我们来了解 docker 仓库的内容。

注:环境为 CentOS7,docker 19.03

仓库(Responsitory)是集中存放镜像的地方,又分公共仓库和私有仓库。

注:有时候容易把仓库与注册服务器(Registry) 混淆。 实际上注册服务器是存放仓库的具体服务器, ⼀个注册服务器上可以有多个仓库, ⽽每个仓库下⾯可以有多个镜像。

公有仓库

Docker Hub 是 docker 官方提供的最大的公共镜像仓库,地址为 https://hub.docker.com

登录

可以使用命令 docker login 来注册和登陆。

基本操作

使用命令 docker search [IMAGE] 来搜索镜像:

# docker search centos
NAME DESCRIPTION STARS OFFICIAL AUTOMATED
centos The official build of CentOS. 5520 [OK]
ansible/centos7-ansible Ansible on Centos7 122 [OK]
jdeathe/centos-ssh CentOS-6 6.10 x86_64 / CentOS-7 7.6.1810 x86… 111 [OK]

上面显示的镜像分为两类:

  • ⼀种是类似于centos这样的基础镜像, 也称为根镜像。 这些镜像是由Docker公司创建、 验证、 ⽀持、 提供, 这样的镜像往往使⽤单个单词作为名字;
  • 另⼀种类型的镜像, ⽐如ansible/centos7-ansible镜像, 是由Docker⽤户ansible创建并维护的, 带有⽤户名称为前缀, 表明是某⽤户下的某仓库。 可以通过⽤户名称前缀“user_name/镜像名”来指定使⽤某个⽤户提供的镜像。

使用命令 docker pull [IMAGE] 拉取镜像:

# docker pull centos

第三方公共镜像

在国内也又一些的公有仓库,我们可以通过配置,让下载镜像的地址指向国内的源。这里选择阿里云,操作步骤如下:

1.登陆阿里云,点击右上角的“管理中心”,点击进入后,点击“镜像加速器”,得到加速的地址。

2.配置文件:

# vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://xxxxxx.mirror.aliyuncs.com"]
}

3.重启 docker

# systemctl restart docker

搭建本地私有仓库

除了以上的公共仓库之外,在需要的时候我们也可以搭建私有的仓库。

安装镜像

安装 docker 后,可以通过官方提供的 registy 镜像来搭建本地私有仓库:

1.下载镜像

# docker pull registry

2.启动镜像

# docker run -d -p 5000:5000 registry

默认情况下, 仓库会被创建在容器的/var/lib/registry⽬录下。 可以通过-v参数来将镜像⽂件存放在本地的指定路径。

管理仓库

上传镜像

通过 docker push命令来上传文件,将镜像上传本地的仓库前需要对镜像作一个特别的 tag

# docker tag cenntos 192.168.127.128:5000/centos
# docker push 172.7.15.113:5000/centos

把标记的镜像给推送到私有仓库,但此时并不会成功,并报错:

Get https://172.7.15.113:5000/v2/: http: server gave HTTP response to HTTPS client

需要修改配置文件:

# vi /etc/docker/daemon.json
{
"insecure-registries":["192.168.127.128:5000"]
}

重启服务,启动仓库容器

# systemctl restart docker
# docker run container_id

现在可以上传镜像了

# docker push 192.168.127.128:5000/centos

查看上传的镜像

# curl 192.168.127.128:5000/v2/_catalog

下载镜像

# docker pull 192.168.127.128:5000/centos

注意:在客户端中从本地下载镜像需要修改docker的配置文件 /etc/docker/daemon.json

docker 实践四:仓库管理的更多相关文章

  1. docker 实践四:数据管理

    这篇是关于 docker 的数据管理. 注:环境为 CentOS7,docker 19.03. 一般容器中管理数据主要有两种方式: 数据卷(Data Volumes):容器内数据直接映射到本地主机环境 ...

  2. Docker实践,来自沪江、滴滴、蘑菇街架构师的交流分享

    架构师小组交流会:每期选一个时下最热门的技术话题进行实践经验分享. 第一期主题:容器实践.Docker 作为当前最具颠覆性的开源技术之一,其轻量虚拟化.可移植性是CI/CD,DevOps,微服务的重要 ...

  3. WebSocket原理与实践(四)--生成数据帧

    WebSocket原理与实践(四)--生成数据帧 从服务器发往客户端的数据也是同样的数据帧,但是从服务器发送到客户端的数据帧不需要掩码的.我们自己需要去生成数据帧,解析数据帧的时候我们需要分片. 消息 ...

  4. 【实践报告】Linux实践四

    Linux内核分析 实践四——ELF文件格式分析 一.概述 1.ELF全称Executable and Linkable Format,可执行连接格式,ELF格式的文件用于存储Linux程序.ELF文 ...

  5. Linux及安全实践四——ELF文件格式分析

    Linux及安全实践四——ELF文件格式分析 一.ELF文件格式概述 1. ELF:是一种对象文件的格式,用于定义不同类型的对象文件中都放了什么东西.以及都以什么样的格式去放这些东西. 二.分析一个E ...

  6. nodejs 实践:express 最佳实践(四) express-session 解析

    nodejs 实践:express 最佳实践(四) express-session 解析 nodejs 发展很快,从 npm 上面的包托管数量就可以看出来.不过从另一方面来看,也是反映了 nodejs ...

  7. AspNetCore容器化(Docker)部署(四) —— Jenkins自动化部署

    一.前言 (Jenkins.Docker.Git/Svn组建一套简单的自动化发布流程) 文章中用到的相关服务器角色 角色 环境 功能 开发机 Win10.Docker(Linux OS) 编码.调试 ...

  8. docker实践之docker-compose部署mysql

    文章目录 docker实践之docker-compose部署mysql 1.安装部署docker 2.编写docker-compose文件 3.编写配置文件和初始化文件 4.启动数据库 5.检查初始化 ...

  9. Docker系列(四):Docker容器互联

    基于Volume的互联 为什么需要Volume docker文件系统是分层的,下面的是全部是只读的,最上面的是可写层,容器中的进程如果修改了某个文件,比如修改了下层的某个文件,其实是在最顶层复制下层文 ...

随机推荐

  1. HNOI2009有趣的数列

    首先next_permutation打表,发现Cat规律. 其实考试的时候这么做没什么问题,而且可以节省异常多的时间,那么现在我们来想一下why. 首先我拿模型法解释一下,我们把2n个数看成2n个人, ...

  2. Java核心复习——J.U.C AbstractQueuedSynchronizer

    第一眼看到AbstractQueuedSynchronizer,通常都会有这几个问题. AbstractQueuedSynchronizer为什么要搞这么一个类? 这个类是干什么的.有什么用? 这个类 ...

  3. Go By Example-值类型

    Go By Example-值类型 Go语言的数据类型可以分为值类型和引用类型,这里先说值类型. 值类型 值类型:在Go语言中int.float.bool和string这些类型都属于值类型,使用这些类 ...

  4. C++的面向对象的Dijkstra写法

    C++的面向对象的Dijkstra写法 面向对象特点的充分使用 清晰的逻辑 简洁的图输入 程序 面向对象特点的充分使用 清晰明确的类实现 class Edge(边的实现) class Req (路由请 ...

  5. vue项目构建:vue-cli+webpack常用配置

    1,Webpack-dev-server的proxy用法:https://www.jianshu.com/p/f489e7764cb8 2,vue-cli3搭建项目之webpack配置:https:/ ...

  6. js的一些兼容性易错的的问题

    一.属性相关 我们通常把特征(attribute)和属性(property)统称为属性,但是他们确实是不同的概念,特征(attribute)会表现在HTML文本中,对特征的修改一定会表现在元素的out ...

  7. Mininet系列实验(二):Mininet可视化应用

    1 实验目的 该实验通过Mininet学习miniedit可视化操作,可直接在界面上编辑任意想要的拓扑,生成python自定义拓扑脚本,简单方便.在实验过程中,可以了解以下方面的知识: Miniedi ...

  8. 多网卡下如何配置指定IP走某个路由器(适用于外网不通,但是钉钉服务器通的情况)

    # 多网卡下如何配置指定IP走某个路由器(适用于外网不通,但是钉钉服务器通的情况) ## 如何查看一个进程建立的网络连接,方式一 - 查看进程pid `ps -ef|grep dingtalk`- 查 ...

  9. ubuntu16上启用外部管理端口

    docker启动外部访问端口在Ubuntu上: [root@maintance systemd] $cd /lib/systemd/system/ [root@maintance system] $c ...

  10. Could not find conda environment: tensorflow | anaconda激活环境

    问题:在使用Anaconda Prompt时activate tensorflow时出现Could not find conda environment: tensorflow. 解答: 因为大家在使 ...