Docker image Introduce

Docker 的image是运行的基本.
例如我们build一个image时, 在Dockerfile每条指令会产生一个可读写的image, 下一条指令使用上一条指令产生的image为基础, 继续产生image(然后删除上一个image), 如果指令没有对image有修改的动作, 那么可以使用image cache. 所有的指令执行完, 生成最终的image.
然后我们就可以使用image来创建并运行container了.

例如我当前本地有一个images, centos, TAG是centos5, 我需要使用它作为base image, 来创建我自己的image.
[root@150 docker]# docker images
REPOSITORY                TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
centos                    centos5             d5844d902074        2 days ago          467.1 MB


创建一个空目录, 并在这个空目录中写一个简单的Dockerfile内容如下 : 
# vi Dockerfile 
FROM centos:centos5
CMD ["-l"]
ENTRYPOINT ["ls"]


使用docker build .来创建image.
[root@150 docker]# docker build .
Sending build context to Docker daemon  2.56 kB
Sending build context to Docker daemon 
Step 0 : FROM centos:centos5---> d5844d902074   # 这个ID是centos:centos5的IMAGE id
Step 1 : CMD ["-l"]---> Running in 9fd2f16fcf97   # 这个ID是执行第一条指令CMD ["-l]时产生的中间过程IMAGE ID---> e253cb9b0ea4   # 这个ID是执行第一条指令CMD ["-l]后产生的IMAGE ID
Removing intermediate container 9fd2f16fcf97   #  移除中间image
Step 2 : ENTRYPOINT ["ls"]---> Running in 52c06c9fae1b  ---> a18fae31b310
Removing intermediate container 52c06c9fae1b
Successfully built a18fae31b310    # 最终的ID, 可以使用docker images看到这个ID


[root@150 docker]# docker images
REPOSITORY                TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
<none>                    <none>              a18fae31b310        14 minutes ago      467.1 MB
centos                    centos5             d5844d902074        2 days ago          467.1 MB


使用这个image运行
[root@150 docker]# docker run a18fae31b310
total 64
drwxr-xr-x   2 root root 4096 Sep 26 12:21 bin
drwxr-xr-x   4 root root  340 Sep 30 10:29 dev
drwxr-xr-x  39 root root 4096 Sep 30 10:29 etc
drwxr-xr-x   2 root root 4096 May 11  2011 home
drwxr-xr-x   6 root root 4096 Sep 26 12:20 lib
drwxr-xr-x   7 root root 4096 Sep 26 12:20 lib64
drwx------   2 root root 4096 Sep 26 12:19 lost+found
drwxr-xr-x   2 root root 4096 May 11  2011 media
drwxr-xr-x   2 root root 4096 May 11  2011 mnt
drwxr-xr-x   2 root root 4096 May 11  2011 opt
dr-xr-xr-x 372 root root    0 Sep 30 10:29 proc
drwxr-x---   2 root root 4096 May 11  2011 root
drwxr-xr-x   2 root root 4096 Sep 26 12:21 sbin
drwxr-xr-x   3 root root 4096 Sep 26 12:21 selinux
drwxr-xr-x   2 root root 4096 May 11  2011 srv
drwxr-xr-x  13 root root    0 Sep 30  2014 sys
drwxrwxrwt   2 root root 4096 Sep 26 12:21 tmp
drwxr-xr-x  14 root root 4096 Sep 26 12:20 usr
drwxr-xr-x  17 root root 4096 Sep 26 12:19 var[root@150 docker]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                         PORTS               NAMES
ae77e79c4f58        a18fae31b310        ls -l               29 seconds ago      Exited (0) 28 seconds ago                          desperate_lovelace [root@150 docker]# docker rm ae77e79c4f58
ae77e79c4f58
[root@150 docker]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES


image的介绍 : 

Introduction

Docker image Introduce - 德哥@Digoal - PostgreSQL research

 

In Docker terminology, a read-only Layer is called an image. An image never changes.

Since Docker uses a Union File System, the processes think the whole file system is mounted read-write. But all the changes go to the top-most writeable layer, and underneath, the original file in the read-only image is unchanged. Since images don't change, images do not have state.

Docker image Introduce - 德哥@Digoal - PostgreSQL research

 

Parent Image

Docker image Introduce - 德哥@Digoal - PostgreSQL research

Each image may depend on one more image which forms the layer beneath it. We sometimes say that the lower image is the parent of the upper image.

Base Image

An image that has no parent is a base image.

Image IDs

All images are identified by a 64 hexadecimal digit string (internally a 256bit value). To simplify their use, a short ID of the first 12 characters can be used on the command line. There is a small possibility of short id collisions, so the docker server will always return the long ID.


[参考]
1. http://docs.docker.com/terms/image/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/261685.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue 筛选组件_记一个复杂组件(Filter)的从设计到开发

此文前端框架使用 rax&#xff0c;全篇代码暂未开源&#xff08;待开源&#xff09;原文链接地址&#xff1a;Nealyang/PersonalBlog前言貌似在面试中&#xff0c;你如果设计一个 react/vue 组件&#xff0c;貌似已经是司空见惯的问题了。本文不是理论片&#xff0c;更多的是自…

python的正则表达式 re

2019独角兽企业重金招聘Python工程师标准>>> 原文发表在&#xff1a; http://luy.li/2010/05/12/python-re/ 延伸阅读&#xff1a;python的 内建函数 和 subprocess 。此文是本系列的第三篇文章了&#xff0c;和之前一样&#xff0c;内容出自官方文档&#xff0c;但…

福克斯保养明细

福克斯轮胎厚度&#xff1a; 胎冠厚度在13mm左右(胎冠花纹深7mm、胎冠厚6mm&#xff09;&#xff0c; 胎侧厚度5mm。 现在的轿车轮胎一般胎面胶层厚度都比较厚&#xff0c;以165/70R13 锦湖KR19轮胎为例:花纹深度为7毫米&#xff0c;缓冲层1&#xff0d;1.5毫米&#xff0c;冠带…

USACO 1.1 Your Ride Is Here

今天开始切USACO 加油 /* ID: aznfy1 PROG: ride LANG: C */ #include <iostream> #include <fstream> #include <string> #include <stdio.h>using namespace std;char a[10],b[10];int main() {freopen("ride.in","r",stdin);f…

Mysql支持的数据类型(总结)

2019独角兽企业重金招聘Python工程师标准>>> 一.数值类型 Mysql支持所有标准SQL中的数值类型&#xff0c;其中包括严格数据类型(INTEGER,SMALLINT,DECIMAL,NUMBERIC)&#xff0c;以及近似数值数据类型(FLOAT,REAL,DOUBLE PRESISION),并在此基础上进行扩展。 扩展后增…

uniapp 获取到js文件var一个变量怎么获取到这个变量值_浅析Js中const,let,var的区别及作用域...

理解&#xff1a;let变量的作用域只能在当前函数中js中const,let,var的区别及作用域_lianzhang861的博客-CSDN博客​blog.csdn.net全局作用域中&#xff0c;用 const 和 let 声明的变量不在 window 上&#xff0c;那到底在哪里&#xff1f;如何去获取&#xff1f;​blog.csdn.n…

C语言求十个数中最大值

一.代码 #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> int main() {int arr[] { 1,2,3,4,5,63,7,8,9,11 };int sz sizeof(arr) / sizeof(arr[0]);int max arr[0];int i 0;for (i 1; i < 10; i){if (arr[i] > max)max arr[i];}printf("%d\n&qu…

ubuntu20.04安装timeshift最新方法

总结&#xff1a; 现在可以使用如下代码安装 sudo apt-get update sudo apt-get install timeshift原因&#xff1a; 在尝试Timeshift系统备份与还原中的方法时&#xff0c; sudo apt-add-repository -y ppa:teejee2008/ppa运行失败。 更改为以下代码&#xff1a; sudo a…

SQL Server安全(6/11):执行上下文与代码签名(Execution Context and Code Signing)

在保密你的服务器和数据&#xff0c;防备当前复杂的攻击&#xff0c;SQL Server有你需要的一切。但在你能有效使用这些安全功能前&#xff0c;你需要理解你面对的威胁和一些基本的安全概念。这篇文章提供了基础&#xff0c;因此你可以对SQL Server里的安全功能充分利用&#xf…

索引超出数组界限是什么意思_从V8源码分析一个JS 数组的内存占用问题

前段时间&#xff0c;在排查一个问题的时候&#xff0c;遇到了一个有点令人困惑的情况&#xff0c;有下面这两段代码&#xff1a;const a new Array(99999); a[99998] undefined;const b new Array(99999); b[99999] undefined;我们通过 node --inspect-brk 来分别运行这两…

C语言打印九九乘法口诀

一.代码 #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> int main() {int i 0;int j 0;for (i 1; i < 10; i){for (j 1; j < i; j){printf("%d*%d%-2d", i, j, i * j);}printf("\n");}return 0; }二.运行结果

自动机理论、形式语言和计算导论提纲

我真的是觉得这门课太虚了。。这个总结基于名教材《自动机理论、语言和计算导论》&#xff08;机械工业&#xff09;&#xff0c;也可以说是这本书的总结。由于这门课里很多罗马字母&#xff0c;打字很困难所以能省略的公式都不写了&#xff0c;可以算是入门介绍了。这里省略的…

C语言求斐波那契数列

一.递归算法 #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> int fib(int k) {if (k < 2)return 1;elsereturn fib(k - 1) fib(k - 2); } int main() {int n 0;int res 0;printf("求输入斐波那契数列的阶数");scanf("%d", &n);res…

nginx $mail-send()发送邮件报错_基于SMTP协议的E-MAIL电子邮件发送客户端软件C#实现...

摘 要电子邮件在当今社会中扮演了一个很重要的角色。越来越多的人在使用它。而且用它的人数势必会继续增加。虽然&#xff0c;现在已经有很多的邮件收发软件例如著名的FoxMail 但是对于大多数的非专业的人来说它还是有点难度稍嫌负责。因此&#xff0c;我们就利用SMTP和Pop协议…

【转】DCT变换的透彻解析

3、离散余弦变换 DCT  将图像从色彩域转换到频率域&#xff0c;常用的变换方法有&#xff1a;DCT变换的公式为&#xff1a;f(i&#xff0c;j) 经 DCT 变换之后&#xff0c;F(0&#xff0c;0) 是直流系数&#xff0c;其他为交流系数。  还是举例来说明一下。  8x8的原始图…

安防硬件WIZnet基于全硬件TCP/IP的安防产品应用及方案

在本文中,我们主要介绍安防硬件的内容,自我感觉有个不错的建议和大家分享下 WIZnet立足于生产全硬件TCP/IP协议栈芯片&#xff0c;为单片机提供理想的处置计划。整体来讲&#xff0c;其应用领域还是非常广泛的&#xff0c;以智能电表为代表的Smart Energy&#xff1b;以数字楼宇…

在Android命令行启动程序的方法

在Android中&#xff0c;除了从界面上启动程序之外&#xff0c;还可以从命令行启动程序&#xff0c;使用的是命令行工具am.启动的方法为 # am start -n 包(package)名/包名.活动(activity)名称 启动的方法可以从每个应用的AndroidManifest.xml的文件中得到&#xff0c;以计算器…

python每隔半个小时执行一次_一篇文章教你用Python抓取微博评论

【Part1——理论篇】试想一个问题&#xff0c;如果我们要抓取某个微博大V微博的评论数据&#xff0c;应该怎么实现呢&#xff1f;最简单的做法就是找到微博评论数据接口&#xff0c;然后通过改变参数来获取最新数据并保存。首先从微博api寻找抓取评论的接口&#xff0c;如下图所…

r数据框计算字符出现次数_R语言系列第二期:①R变量、脚本、作图等模块介绍...

在上一篇文章里&#xff0c;给大家介绍了R语言的下载&#xff0c;界面操作&#xff0c;6个处理对象等等。在这些内容的基础上&#xff0c;我们在这个部分为大家介绍一些实用知识&#xff0c;包括描述工作区结构、图形设备以及它们的参数等问题&#xff0c;还有初级编程和数据输…

$.AjaxFileUpload is not a function

2019独角兽企业重金招聘Python工程师标准>>> ..is not a function错误的可能情况&#xff1a; 1、JS引入的路径不对。检查方法是看浏览器控制台是否将JS载入了进来。 2、JS引入顺序不对。JS要在你使用之前引入 3、Jquery没有第一个引入。 4、函数所在script标签&…