centos7下安装docker(5镜像命名)
1.前面我制作了很镜像,利用docker images可以看到我自己制作的所有的镜像
第一列 是我利用docker build -t 镜像名 制作镜像指定的镜像名,但是它对应的是REPOSITORY
实际上一个镜像的名字是由2部分组成的:repostory+tag
但在之前的制作镜像的过程中,我并没有指定镜像的tag,所以使用的是默认的tag:latest
TAG可以用任何字符表示,通常用于描述版本信息,但其实没有任何的含义
每个repository可以有多个tag,而多个tag可能对应的是同一个镜像
TAG的制作
我们可以使用命令docker tag给镜像打tag
就是如此简单,并没体会出有什么用途:突然发现利用docker tag制作出来的镜像ID一致
下面介绍一下docker HUB
docker hub是docker公司维护的公共registry。用户可以将自己的镜像保存在docker hub免费的repository。如果不希望别人访问自己的镜像,可以购买私有的repository
quay.io是另一个公共的registry,提供与docker hub类似的服务
如何在docker hub上面获取镜像呢?
1.首先在docker hub上面注册一个账号:https://hub.docker.com/
2.在docker host上面登录:docker login -u 用户名,然后输入密码
3.docker hub为了区分不同用户的镜像,镜像的镜像名registry中要包含用户名,完整格式为:【username】/xxx:tag
例如
注:docker官方自己维护的镜像没有用户名
4.通过docker push将镜像上传到docker hub
docker 会上传镜像的每一层,但由于13051839892/cmd:test中只有这一层与官方镜像不一样,所以只上传这一层新的镜像,实际上传的数据很少。总结起来就是上传镜像的时候只有新增加的层会被上传
如果想上传同一镜像名(repository相同)不同tag的镜像,使用docker push 上传时省略tag的名字就可以了:如:docker push 13151839892/cmd
5.登录https://hub.docker.com,在public repository中就可以看到上传的镜像
如果要删除docker hub中上传的镜像,只能在docker hub上面删除
6。这个镜像可以被其他的Docker host下载使用
使用docker pull【username】/xxx:tag
Docker Hub虽然非常方便,但还是有些限制:
1.需要外网的连接,上传和下载的速度非常慢
2.上传到Docker Hub的镜像任何人都能访问,私有的repository并不是免费的
3.安全原因,很多组织不允许把镜像放到外网
我们可以通过搭建本地registry解决
搭建本地registry:学习这里的时候有坑有难点,下面我仔细的记录一下每一步的操作!!!
1.首先下载一个registry镜像(这里必须使用registry镜像)
2.后台启动一个registry容器,-d:后台运行,-p:将容器的5000的端口映射到 Host 主机上的5000的端口,-v:将容器的/var/lib/registry映射到Host的/myregistry上
docker ps看到registry这个容器是运行的状态
3.修改镜像的tag
4.上传镜像:可以看到push并没有成功,报错:http:server gave HTTP response to HTTPS client,
出现这个问题的原因是Docker自从1.3.X之后docker registry交互默认使用的是HTTPS,但是搭建私有镜像默认使用的是HTTP服务,所以与私有镜像交时出现以上错误。
解决办法是在docker server启动的时候增加启动参数默认使用http访问:
修改/usr/lib/systemd/system/docker.service中的第12行
将
修改为
然后重启docker:systemctl restart docker
5.重新上传镜像
我们发现还是不成功:connection refused
这是由于重启我们之前在后台启动的registry容器将会成为Exited状态,所以我们要再次在后台启动一个registry容器
6.这时我们再次重新上传镜像:能够成功上传
7.从私有仓库下载镜像
a。先将本地的镜像删除
b。重新pull镜像
当我重新pull完这个镜像之后,我很傻逼的想了一个问题:如何判断pull下来的这个镜像是在我私有仓库里面下载下来的呢?答案应该是:首先下载这个镜像的时候特别快,其次是应该不会有这么巧合的事情,别人上传的镜像和你上传的镜像名字一致吧。
centos7下安装docker(5镜像命名)的更多相关文章
- centos7下安装docker与镜像加速
1.背景 centos7下安装docker 2.安装 第一步:检查是否为centos7版本 第二步:依赖环境安装 执行如下两个命令: yum -y install gcc yum -y install ...
- docker(一) Centos7下安装docker
docker(一) Centos7下安装dockerdocker(二) windows10下安装dockerdocker(三) 镜像和容器常用命令 docker(四) 使用Dockerfile构建镜像 ...
- CentOS7下安装docker(Docker系列1)
CentOS7下安装docker 系统要求 为了安装docker,需要准备 64-bit的CentOS 7 删除非官方的Docker包 yum的仓库中有一个很旧的Docker包, 现在Docker官方 ...
- centos7 下安装docker报错:You could try using...
搞了台VPS,想要装docker,发现死活装不上,各种报错.之前系统是centos6,发现官方现在已经不支持centos6了,遂升级到centos7,然后还是出现下面这个错误. Error: Pack ...
- centos7下安装docker(2镜像)
docker最小的镜像——hello-world 下载镜像 docker pull docker pull hello-world 查看镜像 docker images docker images ...
- Linux(centos7)下安装Docker
近期公司开始推Docker技术.这个系列的文章都是基于CentOS7系统下进行讲解的. Docker简介 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器 ...
- Centos7下安装Docker(详细的新手装逼教程)
早就听说过Docker,一直不清楚是个啥,今天捣鼓了一下,这里做个记录. --------------------------------------------------------------- ...
- Centos7下安装Docker[z]
[z]https://www.cnblogs.com/qgc1995/p/9553572.html https://yq.aliyun.com/articles/691610?spm=a2c4e.11 ...
- Centos7下安装docker(1)
1.确认系统没安装任何docker相关的安装包 yum remove docker docker-common docker-selinux docker-engine centos7的docker存 ...
- Docker学习系列(一)-CentOS7下安装Docker
CentOS7下Docker的安装 一.操作系统要求 CentOS 7 64位 Kernel 3.10+ 本机系统信息 二.卸载旧版本 如果之前安排过旧版本的Docker,先卸载掉旧版Docker以及 ...
随机推荐
- input type=file实现图片上传,预览以及图片删除
背景 前两天在做一个PC网站的意见反馈,其中涉及到了图片上传功能,要求可以上传多张图片,并且支持图片上传预览及图片删除, 图片上传这一块以前没怎么搞过,而且一般也很少会碰到这样的需求,所以在做这个功能 ...
- springboot aop 自定义注解方式实现完善日志记录(完整源码)
版权声明:本文为博主原创文章,欢迎转载,转载请注明作者.原文超链接 一:功能简介 本文主要记录如何使用aop切面的方式来实现日志记录功能. 主要记录的信息有: 操作人,方法名,参数,运行时间,操作类型 ...
- [Noip2015PJ] 求和
Description 一条狭长的纸带被均匀划分出了 \(n\) 个格子,格子编号从 \(1\) 到 \(n\) .每个格子上都染了一种颜色 \(color_i\) 用 \([1,m]\) 当中的一个 ...
- 我对alias的重新认识:通过alias让rm更安全
bash&shell系列文章:http://www.cnblogs.com/f-ck-need-u/p/7048359.html rm的悲剧总是发生在不经意之间,所以无论是在shell脚本中还 ...
- .NET实现发送邮件
注意:需要找到“POP3/SMTP服务”并开启,然后生成授权码,生成的授权码就是下面登入的密码. /// <summary> /// 发送邮件 /// </summary> / ...
- Moco服务器jar包实现简易的API搭建
永远不要停止前进的脚步,就像你不会忘记以前那些窘迫的连一无所有都称不上的裸露的记忆一样.追求永远的打怪升级,武装自己.双手的努力让曾经那些不堪的记忆在时间的长河中渐渐风化隐匿,但请不要忘记它留下的那一 ...
- 数据库编程Case when
数据库编程题 1. 姓名 日期 是否上班 张三 星期二 是 张三 星期三 是 李四 星期一 是 王五 星期二 是 张三 星期二 是 写出一条SQL语句输出下列结果 姓名 星期一 星期二 星期三 张三 ...
- VUE axios 发送 Form Data 格式数据请求
axios 默认是 Payload 格式数据请求,但有时候后端接收参数要求必须是 Form Data 格式的,所以我们就得进行转换.Payload 和 Form Data 的主要设置是根据请求头的 C ...
- Ansible--常用模块使用
ansible命令解释 通过ansible命令执⾏的任务称为ad-hoc命令(任务),其实它是相对playbook⽽⾔的.通常,命令⾏⽤来实现ansible的批量管理功能,playbook⽤来实现批量 ...
- 自定义控件详解(二):Path类 相关用法
Path:路径 绘制路径:void drawPath (Path path, Paint paint) Path 可以绘制的路径 一.直线路径 1.基本方法 void moveTo (float st ...