6.1 什么是image

  • 文件和meta data的集合(root filesystem)
  • 分层的,并且每一层都可以添加、改变、删除文件,成为一个新的image
  • 不同的image可以共享相同的layer
  • image本身是read-only的

6.2 image的获取

  1. Build from Dockerfile
  2. Pull from Registry
  3. commit from a container's changes

通过Dockerfile构建一个base image

  1. 编写一个c文件并编译成为可执行文件
#include<stdio.h>

int main()
{
printf("hello docker\n");
}
gcc -static hello.c -o hello
  1. 编写Dockerfile文件
FROM scratch
ADD hello /
CMD ["/hello"]
  1. 通过docker build构建镜像

  命令:

docker image build <==> docker build
docker build -t staryjie/hello-docker .

Sending build context to Docker daemon  868.9kB
Step 1/3 : FROM scratch
--->
Step 2/3 : ADD hello /
---> d6f5edefd7fa
Step 3/3 : CMD ["/hello"]
---> Running in e1db264875b9
Removing intermediate container e1db264875b9
---> 09be7d865fab
Successfully built 09be7d865fab
Successfully tagged staryjie/hello-docker:latest
  1. 通过docker history查看镜像的分层

  命令:

docker history
docker history staryjie/hello-docker:latest

IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT
09be7d865fab 4 minutes ago /bin/sh -c #(nop) CMD ["/hello"] 0B
d6f5edefd7fa 4 minutes ago /bin/sh -c #(nop) ADD file:e98243ff005d26728… 865kB

6、Docker Image的更多相关文章

  1. CI Weekly #3 | 关于微服务、Docker 实践与 DevOps 指南

    CI Weekly 围绕『 软件工程效率提升』 进行一系列技术内容分享,包括国内外持续集成.持续交付,持续部署.自动化测试. DevOps 等实践教程.工具与资源,以及一些工程师文化相关的程序员 Ti ...

  2. 一、Docker之旅

    刚刚接触到docker的同事可能会一头雾水,docker到底是一个什么东西,先看看官方的定义. Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的.可移植的.自给自足的容器.开发者在笔 ...

  3. [转]通过Mesos、Docker和Go,使用300行代码创建一个分布式系统

    http://www.csdn.net/article/2015-07-31/2825348 [编者按]时下,对于大部分IT玩家来说,Docker和Mesos都是熟悉和陌生的:熟悉在于这两个词无疑已成 ...

  4. Fbric、Ansible、Docker、Chaos Monkey:DevOps工具的年中回顾

    Fbric.Ansible.Docker.Chaos Monkey:DevOps工具的年中回顾 [编者按]近日,Cyber Engineering Solutions Group 技术经理 Hasan ...

  5. 通过 Mesos、Docker 和 Go,使用 300 行代码创建一个分布式系统

    [摘要]虽然 Docker 和 Mesos 已成为不折不扣的 Buzzwords ,但是对于大部分人来说它们仍然是陌生的,下面我们就一起领略 Mesos .Docker 和 Go 配合带来的强大破坏力 ...

  6. 二、docker的安装和基本命令

    一.docker的安装 1.安装依赖 # yum install -y yum-utils device-mapper-persistent-data 2.设置yum源 # yum-config-ma ...

  7. 一、docker的原理

    一.docker解决什么问题: 高效的利用资源 应用之间相互隔离 应用之间不能发生资源抢占,每个应用只能使用事先注册申请的资源. 环境封装,利于迁移 二.docker的原理: 1.Namespaces ...

  8. 【Docker】(3)---linux部署Docker、Docker常用命令

    linux部署Docker.Docker常用命令 本次部署Linux版本:CentOS 7.4 64位. 说明: 因为Docker是基于Linux 64bit的 所以Docker要求64位的系统且内核 ...

  9. 二、Docker部署应用

    一.有关Docker的安装请参考docker官网  Docker 提供了两个版本:社区版 (CE) 和企业版 (EE). Docker 社区版 (CE) 是开发人员和小型团队开始使用 Docker 并 ...

  10. 五、Docker

    1.简介 Docker是一个开源的应用容器引擎:是一个轻量级容器技术: Docker支持将软件编译成一个镜像:然后在镜像中各种软件做好配置,将镜像发布出去,其他使用者可以直接使用这个镜像: 运行中的这 ...

随机推荐

  1. erlang单独配置文件

    一种是erl启动的时候加参数 doudizhu.config [ {doudizhu,[ {listen_port, }, {node_caller_prefix,"ruby"}, ...

  2. Java 将指定字符串连接到此字符串的结尾 concat()

    Java 手册 concat public String concat(String str) 将指定字符串连接到此字符串的结尾. 如果参数字符串的长度为 0,则返回此 String 对象.否则,创建 ...

  3. 【ZZ】Web开发的入门指导 | 菜鸟教程

    Web开发的入门指导 http://www.runoob.com/w3cnote/a-beginners-guide-to-web-development.html

  4. C++实现大正整数及其相关运算(长期更新)

    /** 只考虑正数[1, +∞); “-”运算只允许大数减小数; 小端存储: */ typedef struct BigInteger0 { vector<int> v; BigInteg ...

  5. nginx.conf_2017-11-24

    user webroot; worker_processes 4; worker_cpu_affinity 1000 0100 0010 0001; worker_rlimit_nofile 6550 ...

  6. python爬搜狗微信获取指定微信公众号的文章

    前言: 之前收藏了一个叫微信公众号的文章爬取,里面用到的模块不错.然而 偏偏报错= =.果断自己写了一个 正文: 第一步爬取搜狗微信搜到的公众号: http://weixin.sogou.com/we ...

  7. Spring集成的Quartz 并发

    以前经常在任务调度程序中使用Spring集成的Quartz,这种方式可以用简单的声明式配置即可实现定时任务,并结合了Spring自身的Bean的管理功能,非常方便.配置样本如下: <bean i ...

  8. 搜索框请输入关键字 onfocus 和 onblur

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. dubbo 提供者 ip不对

    1.服务器多网卡绑定,导致服务起来后程序自己选择的ip不对. 2.提供服务的机器开启了vpn. 3.dubbo配置文件中写死了host. 以下为转载:转自http://www.ithao123.cn/ ...

  10. java关于密码的加密解密

    密码的加密方法有多种,常见的为Aes.Md5 Aes加密,可逆. 其中,Md5加密是采用了散列算法,也就是哈希算法,可以进行多次散列加密.Md5加密是不可逆的,无法解密. MD5是不可逆的单向加密方式 ...