docker第三篇 镜像管理基础
docker 工作原理:
常用的命令docker run 、create 、start... 都是客户端命令
Docker Daemon 接收到客户端传过来的命令以后 docker daemon会根据对应的命令进行下不易操作。
Docker镜像描述:
Docker镜像含有启动容器所需的文件系统及其内容,因此其用于创建并启动docker容器
采用分层构建机制,最底层为rootsfs.
bootfs:用于系统引导的文件系统,包括bootloadere和knernel,容器创建完成后会被卸载,以便节约资源
rootfs: 位于bootfs之上,表现为docker容器的根文件系统;
传统模式中,系统启动之时,内核挂载rootfs时会首先将其挂载为只读模式,完整性自检完成后将其重新挂载为读写模式
docker中,rootfs由内核挂载为只读模式,而后通过联合挂载额外挂载一个可写层
Docker镜像层:
位于下层的镜像称为父镜像,最底层的称为基础镜像,最上层的为“可读写层”,其下均为可读层
镜像层必须基于文件系统才能实现
Aufs (advanced multi-layered unificaton filesystem) 多层统一文件系统
用于为Linux文件系统实现“联合挂载”
aufs是之前的UnionFS的重新实现,2006年有Junjiro Okajima开发
Dockere最初使用aufs作为容器文件系统层,它目前仍作为存储后端之一来支持
aufs的竞争产品是oerlayfs, 后者自从自从3.18版本之后被合并到Linux
docker 的分层镜像,除了aufs,docker,docker还支持btrfs,devicemapper和vfs等
Ubuntu系统下,docker默认Ubuntu的aufs; 而在centos 7 上,用的是devicemapper
Docker Regitry
启动容器时,docker daemon会试图从本地获取相关的镜像,本地镜像不存在时,其将从Register中下载该镜像并保存到本地。
Registry用于保存docker镜像,包括镜像的层次结构和元数据
用户可自建Registry,也可以使用官方Docker Hub
分类:
Sponsor Registry: 第三方的registry 供客户和社区使用
Mirror Registry: 第三方的registry, 只让客户使用
Vendor Registry: 由发布Docker镜像的供应商提供的registry
Private Registry: 通过设有防火墙和额外的安全层的私有实体提供
Registry(repository and index)
repository
由某个特定的docker镜像的所有迭代版本组成的镜像仓库
一个Registry中可以存在多个Repository
Repository可分为“顶级仓库”和“用户仓库”
每个仓库可以包含多个Tag(标签),每个标签对应一个镜像
Index
维护用户账户、镜像的校验以及公共命名空间的信息
相当于为Registry提供一个完成用户认证等功能的检索接口
Docker Registry中的镜像通常啊由开发人员制作,而后推送公共或私有Registry上保存,供其他人员使用,例如“部署”到生产环境
镜像的生成途径
Dockerfile
基于容器制作
Docker Hub automated builds
基于容器制作镜像
docker commit -p b1 此例子基于busybox来做的
-p 是暂停的意思
b1 是我的容器名
(制作容器镜像的时候 容器不能停)
docker tag 06b972fee176 wang/httpd:v0.1-1 给已有的镜像打标签
docker tag wang/httpd:v0.1-1 wang/httpd:latest 再打标签
docker commit -a "Ivy <wang163@.com>" -c 'CMD ["/bin/httpd","-f","-h","/data/html"]' -p t1 wang/httpd:v0.2 制作修改容器运行命令镜像
-a 指定作者
-c 指定要运行的命令
-p 暂停正在运的容器
docker push dajinjin/httpd 把镜像推到自己的hub仓库上 (docker login -u hub用户名)
镜像导出导入
打包镜像:
docker save -o myimages.gz wang/httpd:v0.2 wang/httpd:v0.1-1 (将多个镜像打包成一个压缩文件)
镜像导入:
docker load -i myimages.gz
docker第三篇 镜像管理基础的更多相关文章
- Docker镜像管理基础篇
Docker镜像管理基础篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Docker Images Docker镜像还有启动容器所需要的文件系统及其内容,因此,其用于创建并启 ...
- Docker 学习3 Docker镜像管理基础
一.docker 常用操作及原理 1.docker 常用操作 2.docker 机制 1.docker client端是通过http或者https与server端通信的.个 2.docker 镜像可以 ...
- Docker镜像管理基础与基于容器的镜像制作示例
一.Docker镜像 Docker镜像是启动Docker容器的一个非常重要的组件.Docker各组件之间的关系如图: Docker镜像含有启动容器所需要的文件系统及其内容,因此Docker镜像用于创建 ...
- 3、Docker镜像管理基础
Docker image # docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE redis -alpine 23d561d12e92 d ...
- 一张图比較 Docker 和 Git:镜像管理设计理念
Docker 的镜像管理设计中大量借鉴了 Git 的理念. 以下这张图将对两者的核心概念和操作进行比較,有助于大家高速掌握管理 Docker 镜像的正确方式. watermark/2/text/aHR ...
- Docker笔记6:Docker 常见命令及镜像管理
目 录 一.Docker 常用命令 docker version 命令 docker info 命令 二.Docker 镜像管理 搜索镜像:docker search 镜像名 获取镜像:docker ...
- 3.docker镜像管理基础
一.docker镜像相关 1.About Docker Image Docker镜像含有启动容器所需要的文件系统及其内容,因此,其用于创建并启动docker容器. 采用分层构建机制,最底层为bootf ...
- docker镜像管理基础
[root@node01 ~]# docker pull quay.io/coreos/flannel:v0.10.0-amd64 v0.10.0-amd64: Pulling from coreos ...
- Docker 系列三(容器管理).
一.运行容器 1.基于镜像新建一个容器并启动 : tomcat:8.0 -i:交互式操作 -t:终端 -rm:容器退出后随之将其删除,可以避免浪费空间 -p :端口映射 -d :容器在后台运行 指明了 ...
随机推荐
- SQL-W3School-高级:SQL ALIAS(别名)
ylbtech-SQL-W3School-高级:SQL ALIAS(别名) 1.返回顶部 1. 通过使用 SQL,可以为列名称和表名称指定别名(Alias). SQL Alias 表的 SQL Ali ...
- OS X以及iOS中与硬件环境相关的预定义宏
由于现在ARM处理器的飞速发展,从Apple A4到现在的Apple A7,从32位到64位,每一代处理器几乎都增加了不少特性,从而在架构上也有所不同.比如Apple A6引入了ARMv7S架构,增加 ...
- VituralBox从零搭建基于CentOS 7(64位)的Kubernetes+docker集群
1. 下载CentOS 7官方minimal镜像 2. 安装VituralBox(Windows 10 64位) 3. 安装Git for windows(Windows 10 64位) 4. 安装V ...
- python3 @classmethod 和 @staticmethod 的区别
如果您将某个东西定义为classmethod,这可能是因为您打算从类而不是类实例中调用它. 定义类方法的几种方式: 常规方式 : 需要self隐士传递当前类 ...
- 【UI】数据表格设计
https://www.smashingmagazine.com/2019/02/complex-web-tables/ https://www.smashingmagazine.com/2019/0 ...
- 新式类__new__()方法
概述 __new__() 是在新式类中新出现的方法,在 Python 中类实例化时,__new__()方法用在 __init__() 启动之前,决定是否要使用该 __init__() 方法,因为__n ...
- CTF基础知识 && AWD红蓝对抗
AWD 备份源码,修改账户密码,查看是否有预留后门然后删掉 修改mysql密码 格式:mysqladmin -u用户名 -p旧密码 password 新密码 例子:mysqladmin -uroot ...
- 阻止移动端input按钮聚焦时唤起软键盘的方法
一.设置input为readonly 二.使用JS代码,在input按钮fous时就让其blur
- eNSP——利用单臂路由实现VLAN间路由
原理: 以太网中,通常会使用VLAN技术隔离二层广播域来减少广播的影响,并增强网络的安全性和可管理性.其缺点是同时也严格地隔离了不同VLAN之间的任何二层流量,使分属于不同VLAN的用户不能直接互相通 ...
- VMWare虚拟机15.X局域网网络配置(修改网卡)
最近在搞几台虚拟机来学习分布式和大数据的相关技术,首先先要把虚拟机搞起来,搞起虚拟机第一步先安装系统,接着配置网络 vmware为我们提供了三种网络工作模式,它们分别是:Bridged(桥接模式).N ...