Docker镜像
docker镜像123?
额,由于没有实验环境,没有亲手实践,因此理解可能有不对的地方。
反正也是学习笔记,以后再修改吧...
docker的镜像跟virtualbox的镜像不一样。在虚拟机中,镜像是一个系统的完整体,包括了系统、用户在上面做的操作等等。而在docker中,镜像是一组文件的叠加。
解释下,玩过PS的应该都知道图层的概念。一个图片由不同的图层叠加混合,最终形成一张完美的照片。其中底层可能原始图片,然后盖上一层黄色,再覆盖掉不想要的部分,或者添加点点缀,通过这种图层的方式,可以方便的合并出想要的图片。在docker中,先通过启动文件启动一个基础的文件,然后在它上面加载文件系统,同时加载其他的文件。
举个例子,我想要搭建一个apache服务器的镜像,可能会按照下面的步骤:
- 加载启动文件
- 加载文件系统,如ubuntu或者centos或者fedora
- 加载emacs
- 加载apache
就像下面的图展示的一样:

加载完这些镜像后,会创建一个读写层。之前加载的镜像都是只读的,所有的修改操作都会放在这个读写层中。如果修改的是下面只读层的内容,则会拷贝到读写层再修改,这样就保证了层的读写分离。
docker镜像相关的命令
查看docker镜像
sudo docker images
从镜像网站上拉取镜像:
sudo docker pull fedora:20
查找镜像:
sudo docker search puppet
推送镜像:
sudo docker push jamtur01/static_web
删除镜像:
sudo docker rmi jamtur01/static_web
通过dockerfile创建镜像:
touch Dockerfile
sudo docker build =t="xxx/xxx:xxx"
查询docker历史:
sudo docker history 2dfshfjksd
dockerfile中的命令
1 CMD:启动时运行的命令
2 ENTRYPOINT:不会被run的指令覆盖。
3 WORKERID:创建新的镜像,设置工作目录
4 ENV:设置环境变量
5 USER:指定运行的用户
6 VOLUME:向镜像添加卷
7 ADD:把文件夹中的内容复制到镜像中
8 COPY:与ADD类似,但是不会解压或者提取
9 ONBUILD:添加触发器
Docker镜像的更多相关文章
- MySQL、MongoDB、Redis数据库Docker镜像制作
MySQL.MongoDB.Redis数据库Docker镜像制作 在多台主机上进行数据库部署时,如果使用传统的MySQL的交互式的安装方式将会重复很多遍.如果做成镜像,那么我们只需要make once ...
- 理解Docker(2):Docker 镜像
本系列文章将介绍Docker的有关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 ...
- 如何合并两个Docker 镜像
http://www.open-open.com/lib/view/open1437746544709.html 在你的机器上使用docker pull来从Docker Hub下载镜像. docker ...
- Docker镜像的管理和创建
1. Docker镜像和Docker容器: Docker镜像实际上是一系列的文件系统,通常的Linux系统一般是两层文件系统,bootfs和rootfs,bootfs就是bootloader ...
- docker 源码分析 四(基于1.8.2版本),Docker镜像的获取和存储
前段时间一直忙些其他事情,docker源码分析的事情耽搁了,今天接着写,上一章了解了docker client 和 docker daemon(会启动一个http server)是C/S的结构,cli ...
- docker使用阿里云Docker镜像库加速
官方镜像下载实在是慢,于是开通了阿里云开发者帐号, 官方帮助 阿里云Docker镜像库 阿里云容器Hub服务:http://dev.aliyun.com/search.html 来自云端的容器Hub服 ...
- 第四章 使用Docker镜像和仓库(二)
第四章 使用Docker镜像和仓库(二) 回顾: 开始学习之前,我先pull下来ubuntu和fedora镜像 [#9#cloudsoar@cloudsoar-virtual-machine ~]$s ...
- 第四章 使用Docker镜像和仓库
第4章 使用Docker镜像和仓库 回顾: 回顾如何使用 docker run 创建最基本的容器 $sudo docker run -i -t --name another_container_mum ...
- 将 ASP.NET Core 1.0 应用作为 docker 镜像发布 (Linux版)
var appInsights=window.appInsights||function(config){ function r(config){t[config]=function(){var i= ...
随机推荐
- ASP.net分别连接SQLserver数据库与连接Access数据库精英版
-------------------------连接access2003 字符串------------------------- Provider=Microsoft.Jet.OLEDB.4.0; ...
- Java实现Excel导入数据库,数据库中的数据导入到Excel
private static void executeMethod(JobExecutionContext arg0) throws Exception{ try { TContrastService ...
- python 版本升级(CentOS) 从2.6.6升级到2.7.6
安装必须的包 yum install zlib-devel bzip2-devel pcre-devel openssl-devel ncurses-devel sqlite-devel readli ...
- ArcGIS10.1 api for Flex开发用于ArcGIS 9.3时QueryTask 'Error #2032'错误的解决方案
因客户GIS软件需求,将应用降级到低版本ArcGIS9.3,不仅数据有些样式.配色.字符有些问题,API也要相应“降级”,解决如下: 利用9.3+flex做QueryTask时候出现了[RPC Fau ...
- 20151012 C# 第一篇 字符与字符串
20151012 字符与字符串: Char.String等类来表示 字符类Char 1. 字符类Char 表示一个 Unicode 字符,(Unicode字符是计算机通用的字符编码,对不同语言中的每个 ...
- Java程序,求学员的平均成绩
第一步,系统提示输入学员的人数. 第二步,逐一获取学员的分数,并累计. 第三步,求平均成绩,并输出. import java.util.Scanner; public class chengji { ...
- golang坑1
:=比较方便,不过今天掉进了一个小坑 var ( foo *XXX ) func bar() { fmt.Println(foo.abc) } func main() { foo, err := XX ...
- webapi版本升级管理
由于近期公司人员流动,本人临时客串webapi开发,针对开发过程中碰到一些问题做一些改进 1.当前做法 项目webapi项目是居于asp.net框架开发的,每个功能模块新建一个api控制器,比如Use ...
- vi命令模式下快速注释代码的方法
进入http://www.vim.org/scripts/script.php?script_id=1528 点击这个链接下载comments.vim这个插件 然后把它放入到./vim/plugin下 ...
- WPF 自定义TextBox,可控制键盘输入内容
非原创,整理之前的代码的时候找出来的,可用,与大家分享一下! public class NumbericBoxWithZero : NumericBox { public NumbericBoxWit ...