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镜像的更多相关文章

  1. MySQL、MongoDB、Redis数据库Docker镜像制作

    MySQL.MongoDB.Redis数据库Docker镜像制作 在多台主机上进行数据库部署时,如果使用传统的MySQL的交互式的安装方式将会重复很多遍.如果做成镜像,那么我们只需要make once ...

  2. 理解Docker(2):Docker 镜像

    本系列文章将介绍Docker的有关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 ...

  3. 如何合并两个Docker 镜像

    http://www.open-open.com/lib/view/open1437746544709.html 在你的机器上使用docker pull来从Docker Hub下载镜像. docker ...

  4. Docker镜像的管理和创建

    1. Docker镜像和Docker容器:      Docker镜像实际上是一系列的文件系统,通常的Linux系统一般是两层文件系统,bootfs和rootfs,bootfs就是bootloader ...

  5. docker 源码分析 四(基于1.8.2版本),Docker镜像的获取和存储

    前段时间一直忙些其他事情,docker源码分析的事情耽搁了,今天接着写,上一章了解了docker client 和 docker daemon(会启动一个http server)是C/S的结构,cli ...

  6. docker使用阿里云Docker镜像库加速

    官方镜像下载实在是慢,于是开通了阿里云开发者帐号, 官方帮助 阿里云Docker镜像库 阿里云容器Hub服务:http://dev.aliyun.com/search.html 来自云端的容器Hub服 ...

  7. 第四章 使用Docker镜像和仓库(二)

    第四章 使用Docker镜像和仓库(二) 回顾: 开始学习之前,我先pull下来ubuntu和fedora镜像 [#9#cloudsoar@cloudsoar-virtual-machine ~]$s ...

  8. 第四章 使用Docker镜像和仓库

    第4章 使用Docker镜像和仓库 回顾: 回顾如何使用 docker run 创建最基本的容器 $sudo docker run -i -t --name another_container_mum ...

  9. 将 ASP.NET Core 1.0 应用作为 docker 镜像发布 (Linux版)

    var appInsights=window.appInsights||function(config){ function r(config){t[config]=function(){var i= ...

随机推荐

  1. 给自己立下一个巨大的flag

    [BZOJ1861][BZOJ3224] [BZOJ2733][BZOJ1056] [BZOJ2120][BZOJ3673] [BZOJ1833][BZOJ1026] [BZOJ3209][BZOJ1 ...

  2. WebView 上传文件 WebChromeClient之openFileChooser函数

    原链接:http://blog.saymagic.cn/2015/11/08/webview-upload.html?utm_source=tuicool&utm_medium=referra ...

  3. C++中未初始化的bool值的问题

    原创文件,欢迎阅读,禁止转载. 问题描述 你见过一个这样的bool值吗,判断 var 和 !var 都是成立的,今天被我遇到了,是在一个坑里遇到的.今天调试了一个程序,发送一个网络消息,结果总是得不到 ...

  4. CentOS 7下设置DNS服务器

    在CentOS 7下,手工设置 /etc/resolv.conf 里的DNS,过了一会,发现被系统重新覆盖或者清除了.和CentOS 6下的设置DNS方法不同,有几种方式: 1.使用全新的命令行工具 ...

  5. 【随机化】bzoj4080 [Wf2014]Sensor Network

    #include<cstdio> #include<algorithm> #include<cmath> using namespace std; typedef ...

  6. scrollHeight、scrollTop等的比较

    自接触js以来一直使用的是jquery插件,对js的了解甚少,经常容易混淆element.scrollHeight.element.scrollTop等方法.今天对这些方法做出比较. scrollTo ...

  7. bower

    1. bower介绍 Bower 是 twitter 推出的一款包管理工具,基于nodejs的模块化思想,把功能分散到各个模块中,让模块和模块之间存在联系,通过 Bower 来管理模块间的这种联系. ...

  8. step by step 之餐饮管理系统六(数据库访问模块)

    距上次写的博客已经好几个月,一方面公司里面有很多的东西要学,平时的时候又要写代码,所以没有及时更新,不过现在还好,已经成型了,现在把之前的东西贴出来,先看一下现在做的几个界面吧.第一个界面是用颜色用区 ...

  9. Oracle学习笔记2

    主键 create table userinfo_test( userid number(3,0), username varchar2(20), pwd varchar2(20), constrai ...

  10. Centos7安装完毕后重启提示Initial setup of CentOS Linux 7 (core)的解决方法

    问题: CentOS7安装完毕,重新开机启动后显示: Initial setup of CentOS Linux 7 (core) 1) [x] Creat user 2) [!] License i ...