本篇我们来了解 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. 深入理解JVM——关于垃圾回收

    关于垃圾回收 仿佛来自上海居委会大妈的灵魂拷问:“你是什么垃圾?” 不 今天我们要说的是JVM的垃圾回收 假如我是一个“人”类的“对象”,也和人的生命一样必有一死,可是“我真的还想再活500年~~”, ...

  2. BZOJ4237稻草人——单调栈+CDQ分治

    题目描述 JOI村有一片荒地,上面竖着N个稻草人,村民们每年多次在稻草人们的周围举行祭典. 有一次,JOI村的村长听到了稻草人们的启示,计划在荒地中开垦一片田地.和启示中的一样,田地需要满足以下条件: ...

  3. Mybatis使用IN语句查询

    一.简介 在SQL语法中如果我们想使用in的话直接可以像如下一样使用: select * from HealthCoupon where useType in ( '4' , '3' ) 但是如果在M ...

  4. 如何用Deepin-wine安装运行win32的程序

    创建容器 容器就是win32程序运行的环境,可以理解为一个极小的windows,在Linux下面实际对应一个文件目录,如QQ对应的容器目录是~/.deepinwine/Deepin-QQ. 创建容器最 ...

  5. MAC将根目录文件夹的权限赋给用户

    https://my.oschina.net/liujiest/blog/762004 1.sudu -i进入root模式(需输入密码) 2.chown -R 用户名 /文件夹名 sudo -i Pa ...

  6. final和finally和finalize的区别

    final 修饰类,不能被继承 修饰方法,不能被重写 修饰变量,只能赋值一次 finally 是try语句中的一个语句体,不能单独使用,用来释放资源 finalize 是一个方法,当垃圾回收器确定不存 ...

  7. LeetCode_125. Valid Palindrome

    125. Valid Palindrome Easy Given a string, determine if it is a palindrome, considering only alphanu ...

  8. spring security4.1.3配置以及踩过的坑

    https://blog.csdn.net/honghailiang888/article/details/53520557 spring security完全可以作为一个专门的专题来说,有一个专题写 ...

  9. PHP实现简单留言板

    最近学习了下PHP基础,这里做一个简单的留言板,算是对PHP和MySQL的使用做一个整体的练习吧,不遇到问题总感觉学不到东西. 截图如下: 总结: 1>数据库的简单操作,数据库的增删改查: 2. ...

  10. es6 fetch方法请求接口

    fetch(url, { method: 'post', headers: { 'Content-type': 'application/x-www-form-urlencoded; charset= ...