本篇我们来了解 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. vue组件的原理

    https://www.cnblogs.com/landeanfen/p/6518679.html

  2. 20165223《网络对抗技术》Exp7 网络欺诈防范

    目录 -- 网络欺诈防范 实践说明 实践目标 基础知识问答 实验工具学习 实践内容 简单应用SET工具建立冒名网站 ettercap DNS spoof 结合应用两种技术,用DNS spoof引导特定 ...

  3. arcgis python 一个mxd打包mpk

    def onempk(fileName): if fileName: mxd = arcpy.mapping.MapDocument(fileName) else: mxd = arcpy.mappi ...

  4. 反向代理Nginx

    引用:https://baijiahao.baidu.com/s?id=1600687025749463237&wfr=spider&for=pc 参考下图,正向代理用途:Client ...

  5. /bin/sh^M:bad interpreter: No such file or directory问题

    脚本命令正确无误,但是执行脚本的时候报错“/bin/sh^M:bad interpreter: No such file or directory” 原因:该脚本文件在windows系统中编辑过,引入 ...

  6. Matrix: Matrix的,postScale(), postTranslate()方法

    Matrix的操作,总共分为translate(平移),rotate(旋转),scale(缩放)和skew(倾斜)四种,每一种变换在Android的API里都提供了set, post和pre三种操作方 ...

  7. 使用docker运行mysql

    以前开发的时候都是用本地的sqlite开发,但是极少数情况下,sqlite支持的语法发布到服务器上链接mysql会报错. 为了避免这种现象,还是链接本地mysql开发还是更稳定的, 可是开发的项目多了 ...

  8. phpstorm设置最多标签数

    在settings=>Editor=>General=>Editor Tabs的Tab limit下可以设置当前窗口能够打开的最多标签数目,默认是10,超过设定值时,会自动关闭前面的 ...

  9. 优雅编写Python3 的62个小贴士

    iterable技巧 ▍1.创建一个数字序列(从0到10,间隔为2)   >>> range(0,10,2)[0, 2, 4, 6, 8] ▍2.对一串数字求和(从0到10,间隔为2 ...

  10. c# 扫描局域网IP列表的几种方法

    很多软件都有获知局域网在线计算机IP的功能,但是在.net怎么实现呢,有好多方法, 下面我给大家介绍几种,供大家参考. 1.微软社区上介绍了使用Active Directory 来遍历局域网 利用Di ...