docker 实践四:仓库管理
本篇我们来了解 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 实践四:仓库管理的更多相关文章
- docker 实践四:数据管理
这篇是关于 docker 的数据管理. 注:环境为 CentOS7,docker 19.03. 一般容器中管理数据主要有两种方式: 数据卷(Data Volumes):容器内数据直接映射到本地主机环境 ...
- Docker实践,来自沪江、滴滴、蘑菇街架构师的交流分享
架构师小组交流会:每期选一个时下最热门的技术话题进行实践经验分享. 第一期主题:容器实践.Docker 作为当前最具颠覆性的开源技术之一,其轻量虚拟化.可移植性是CI/CD,DevOps,微服务的重要 ...
- WebSocket原理与实践(四)--生成数据帧
WebSocket原理与实践(四)--生成数据帧 从服务器发往客户端的数据也是同样的数据帧,但是从服务器发送到客户端的数据帧不需要掩码的.我们自己需要去生成数据帧,解析数据帧的时候我们需要分片. 消息 ...
- 【实践报告】Linux实践四
Linux内核分析 实践四——ELF文件格式分析 一.概述 1.ELF全称Executable and Linkable Format,可执行连接格式,ELF格式的文件用于存储Linux程序.ELF文 ...
- Linux及安全实践四——ELF文件格式分析
Linux及安全实践四——ELF文件格式分析 一.ELF文件格式概述 1. ELF:是一种对象文件的格式,用于定义不同类型的对象文件中都放了什么东西.以及都以什么样的格式去放这些东西. 二.分析一个E ...
- nodejs 实践:express 最佳实践(四) express-session 解析
nodejs 实践:express 最佳实践(四) express-session 解析 nodejs 发展很快,从 npm 上面的包托管数量就可以看出来.不过从另一方面来看,也是反映了 nodejs ...
- AspNetCore容器化(Docker)部署(四) —— Jenkins自动化部署
一.前言 (Jenkins.Docker.Git/Svn组建一套简单的自动化发布流程) 文章中用到的相关服务器角色 角色 环境 功能 开发机 Win10.Docker(Linux OS) 编码.调试 ...
- docker实践之docker-compose部署mysql
文章目录 docker实践之docker-compose部署mysql 1.安装部署docker 2.编写docker-compose文件 3.编写配置文件和初始化文件 4.启动数据库 5.检查初始化 ...
- Docker系列(四):Docker容器互联
基于Volume的互联 为什么需要Volume docker文件系统是分层的,下面的是全部是只读的,最上面的是可写层,容器中的进程如果修改了某个文件,比如修改了下层的某个文件,其实是在最顶层复制下层文 ...
随机推荐
- HNOI2009有趣的数列
首先next_permutation打表,发现Cat规律. 其实考试的时候这么做没什么问题,而且可以节省异常多的时间,那么现在我们来想一下why. 首先我拿模型法解释一下,我们把2n个数看成2n个人, ...
- Java核心复习——J.U.C AbstractQueuedSynchronizer
第一眼看到AbstractQueuedSynchronizer,通常都会有这几个问题. AbstractQueuedSynchronizer为什么要搞这么一个类? 这个类是干什么的.有什么用? 这个类 ...
- Go By Example-值类型
Go By Example-值类型 Go语言的数据类型可以分为值类型和引用类型,这里先说值类型. 值类型 值类型:在Go语言中int.float.bool和string这些类型都属于值类型,使用这些类 ...
- C++的面向对象的Dijkstra写法
C++的面向对象的Dijkstra写法 面向对象特点的充分使用 清晰的逻辑 简洁的图输入 程序 面向对象特点的充分使用 清晰明确的类实现 class Edge(边的实现) class Req (路由请 ...
- vue项目构建:vue-cli+webpack常用配置
1,Webpack-dev-server的proxy用法:https://www.jianshu.com/p/f489e7764cb8 2,vue-cli3搭建项目之webpack配置:https:/ ...
- js的一些兼容性易错的的问题
一.属性相关 我们通常把特征(attribute)和属性(property)统称为属性,但是他们确实是不同的概念,特征(attribute)会表现在HTML文本中,对特征的修改一定会表现在元素的out ...
- Mininet系列实验(二):Mininet可视化应用
1 实验目的 该实验通过Mininet学习miniedit可视化操作,可直接在界面上编辑任意想要的拓扑,生成python自定义拓扑脚本,简单方便.在实验过程中,可以了解以下方面的知识: Miniedi ...
- 多网卡下如何配置指定IP走某个路由器(适用于外网不通,但是钉钉服务器通的情况)
# 多网卡下如何配置指定IP走某个路由器(适用于外网不通,但是钉钉服务器通的情况) ## 如何查看一个进程建立的网络连接,方式一 - 查看进程pid `ps -ef|grep dingtalk`- 查 ...
- ubuntu16上启用外部管理端口
docker启动外部访问端口在Ubuntu上: [root@maintance systemd] $cd /lib/systemd/system/ [root@maintance system] $c ...
- Could not find conda environment: tensorflow | anaconda激活环境
问题:在使用Anaconda Prompt时activate tensorflow时出现Could not find conda environment: tensorflow. 解答: 因为大家在使 ...