Base镜像(scratch)

Docker Hub中99%的镜像是通过在base镜像中安装和配置需要的软件构建出来的。也就是说base镜像是所有其他镜像的鼻祖。

hub默认centos镜像是什么情况

[root@t-docker chenzx]# docker run -it centos
[root@ef7873879474 /]# vim a.txt ##默认ceonts不支持vim命令
bash: vim: command not found
[root@ef7873879474 /]# ifconfig ##默认centos不支持ifconfig命令
bash: ifconfig: command not found

自定义镜像mycentos

1、编写Dokcerfile文件

[root@t-docker mycentos]# cat Dockerfile
FROM centos
MAINTAINER chenzx chenzx@11.com
ENV MYPATH /usr/local
WORKDIR $MYPATH
RUN yum -y install vim
RUN yum -y install net-tools
EXPOSE 80
CMD echo $MYPATH
CMD echo "success-----ok"
CMD /bin/bash

2、构建

语法:docker build -t 新镜像名字:TAG .

[root@t-docker mycentos]# docker build -f ./Dockerfile -t mycentos:1.3 .
Sending build context to Docker daemon 2.048kB
Step 1/10 : FROM centos
---> 5182e96772bf
Step 2/10 : MAINTAINER chenzx chenzx@11.com
---> Running in bf692c9a8f30
Removing intermediate container bf692c9a8f30
---> be7c6d72dcf6
Step 3/10 : ENV MYPATH /usr/local
---> Running in bfbe973063c4
Removing intermediate container bfbe973063c4
---> b6117be61d21
Step 4/10 : WORKDIR $MYPATH
---> Running in dc207977e37e
Removing intermediate container dc207977e37e
---> a299de1b142d
Step 5/10 : RUN yum -y install vim
---> Running in 7b18a2ea02ba
Loaded plugins: fastestmirror, ovl
Determining fastest mirrors
* base: mirror.bit.edu.cn
* extras: mirror.bit.edu.cn
* updates: mirror.bit.edu.cn
Resolving Dependencies
--> Running transaction check
---> Package vim-enhanced.x86_64 2:7.4.160-4.el7 will be installed
--> Processing Dependency: vim-common = 2:7.4.160-4.el7 for package: 2:vim-enhanced-7.4.160-4.el7.x86_64
--> Processing Dependency: which for package: 2:vim-enhanced-7.4.160-4.el7.x86_64
--> Processing Dependency: perl(:MODULE_COMPAT_5.16.3) for package: 2:vim-enhanced-7.4.160-4.el7.x86_64
--> Processing Dependency: libperl.so()(64bit) for package: 2:vim-enhanced-7.4.160-4.el7.x86_64
---> 41b54eafc062
Step 6/10 : RUN yum -y install net-tools
---> Running in 4fe95a3f928d
Loaded plugins: fastestmirror, ovl
Loading mirror speeds from cached hostfile
* base: mirror.bit.edu.cn
* extras: mirror.bit.edu.cn
* updates: mirror.bit.edu.cn
Resolving Dependencies
--> Running transaction check
Step 7/10 : EXPOSE 80
---> Running in b49331f041a0
Removing intermediate container b49331f041a0
---> 255ce503616b
Step 8/10 : CMD echo $MYPATH
---> Running in 0c8a45aa210f
Removing intermediate container 0c8a45aa210f
---> b70d750b50c6
Step 9/10 : CMD echo "success-----ok"
---> Running in 0f82aaeab3af
Removing intermediate container 0f82aaeab3af
---> 41680031171e
Step 10/10 : CMD /bin/bash
---> Running in 5694bd9a1dab
Removing intermediate container 5694bd9a1dab
---> 0c868c56748b
Successfully built 0c868c56748b
Successfully tagged mycentos:1.3
[root@t-docker mycentos]#

3、运行

[root@t-docker mycentos]# docker run -it mycentos:1.3
[root@28ab180a72d7 local]# pwd ##落脚点是/usr/local
/usr/local
[root@28ab180a72d7 local]# vim a.txt ##vim命令也有了
[root@28ab180a72d7 local]# ifconfig ##ifconfig命令有了
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.17.0.2 netmask 255.255.0.0 broadcast 172.17.255.255
ether 02:42:ac:11:00:02 txqueuelen 0 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
loop txqueuelen 1000 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@28ab180a72d7 local]#

4、列出镜像的变更历史 

功能:从底下往上看,可以看出制作mycentos镜像的历史过程。

[root@t-docker mycentos]# docker images mycentos
REPOSITORY TAG IMAGE ID CREATED SIZE
mycentos 1.3 0c868c56748b 12 minutes ago 442MB
[root@t-docker mycentos]# docker history 0c868c56748b
IMAGE CREATED CREATED BY SIZE COMMENT
0c868c56748b 12 minutes ago /bin/sh -c #(nop) CMD ["/bin/sh" "-c" "/bin… 0B
41680031171e 12 minutes ago /bin/sh -c #(nop) CMD ["/bin/sh" "-c" "echo… 0B
b70d750b50c6 12 minutes ago /bin/sh -c #(nop) CMD ["/bin/sh" "-c" "echo… 0B
255ce503616b 12 minutes ago /bin/sh -c #(nop) EXPOSE 80 0B
1cb7e8747969 12 minutes ago /bin/sh -c yum -y install net-tools 93.7MB
41b54eafc062 12 minutes ago /bin/sh -c yum -y install vim 149MB
a299de1b142d 13 minutes ago /bin/sh -c #(nop) WORKDIR /usr/local 0B
b6117be61d21 13 minutes ago /bin/sh -c #(nop) ENV MYPATH=/usr/local 0B
be7c6d72dcf6 13 minutes ago /bin/sh -c #(nop) MAINTAINER chenzx chenzx@… 0B
5182e96772bf 3 weeks ago /bin/sh -c #(nop) CMD ["/bin/bash"] 0B
<missing> 3 weeks ago /bin/sh -c #(nop) LABEL org.label-schema.sc… 0B
<missing> 3 weeks ago /bin/sh -c #(nop) ADD file:6340c690b08865d7e… 200MB

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28916011/viewspace-2213388/,如需转载,请注明出处,否则将追究法律责任。

docker 14 dockerfile自定义mycentos的更多相关文章

  1. DOCKER 学习笔记2 认识dockerfile自定义镜像

    Dockerfile 概念 Dockerfile 是一个文本文件,但包含所构建容器在运行时候的参数.库.资源配置.可以简单理解为我们现有的镜像,比如Centos/Nginx 但我们需要构建一个容器的时 ...

  2. docker:Dockerfile构建LNMP平台

    docker:Dockerfile构建LNMP平台   1.dockerfile介绍  Dockerfile是Docker用来构建镜像的文本文件,包含自定义的指令和格式.可以通过docker buil ...

  3. 编写Dockerfile自定义镜像

    要求 编写一个Dockerfile自定义centos镜像,要求在容器内部可以使用vim和ifconfig命令,并且登入落脚点为/usr/local 编写Dockerfile FROM centos M ...

  4. docker容器dockerfile详解

    docker公司在容器技术发展中提出了镜像分层的理念,可以说也是这个革命性的理念让原本只不过是整合linux内核特性的容器,开始野蛮生长. docker通过UnionFS联合文件系统将镜像的分层实现合 ...

  5. Docker 13 Dockerfile

    参考源 https://www.bilibili.com/video/BV1og4y1q7M4?spm_id_from=333.999.0.0 https://www.bilibili.com/vid ...

  6. docker之Dockerfile指令介绍

    Docker通过对于在Dockerfile中的一系列指令的顺序解析实现自动的image的构建 通过使用build命令,根据Dockerfiel的描述来构建镜像 通过源代码路径的方式 通过标准输入流的方 ...

  7. Docker、Dockerfile、Docker镜像、容器这些都是什么鸟?

    老生常谈,再再再……普及一下: Docker:最早是dotCloud公司出品的一套容器管理工具,但后来Docker慢慢火起来了,连公司名字都从dotCloud改成Docker. Dockerfile: ...

  8. docker使用Dockerfile构建ssh容器

    一.使用Dockerfile构建centos 1.创建 Dockerfile mkdir centos # 创建一个目录存放之后的Dockerfile,目录名无所谓 cd centos # 进入目录 ...

  9. (转)Docker 基础 : Dockerfile

    全文来自 Docker 基础 : Dockerfile Dockerfile 是一个文本格式的配置文件,用户可以使用 Dockerfile 快速创建自定义的镜像.我们会先介绍 Dockerfile 的 ...

随机推荐

  1. CSS3效果:波浪效果

    实现效果 如图所示: 首先得准备三张图,一张是浅黄色的背景图loading_bg.png,一张是深红色的图loading.png,最后一张为bolang.png. css代码 body{backgro ...

  2. BZOJ2655: calc(dp 拉格朗日插值)

    题意 题目链接 Sol 首先不难想到一个dp 设\(f[i][j]\)表示选了\(i\)个严格递增的数最大的数为\(j\)的方案数 转移的时候判断一下最后一个位置是否是\(j\) \[f[i][j] ...

  3. PlugNT CMS v4.6.3 最新功能

    PlugNT CMS v4.6.3 最新功能: 弃用标签 selected="commend,stick" 改为andwhere="commend=1 and stick ...

  4. [ORACLE]ORA-28002 The password will expire within 7 days.将不能登录系统

    错误“ORA-28002 The password will expire within 7 days.  Cannot logon to the database“当在进程调度器上运行AE程序可能遇 ...

  5. 如何用ABP框架快速完成项目(7) - 用ABP一个人快速完成项目(3) - 通过微服务模式而不是盖楼式来避免难度升级和奥卡姆剃刀原理

    这节文章十分重要!十分重要!十分重要!   很多同学在使用ABP的过程中遇到很多问题, 花费了很多时间和精力都还无法解决, 就是卡在这节文章这里.   Talk is cheap, just show ...

  6. Nginx 相关介绍(Nginx是什么?能干嘛?)

    Nginx的产生 没有听过Nginx?那么一定听过它的"同行"Apache吧!Nginx同Apache一样都是一种WEB服务器.基于REST架构风格,以统一资源描述符(Unifor ...

  7. MyBatis笔记----MyBatis查询表全部的两种方法:XML与注解

    查询单条信息的在 http://www.cnblogs.com/tk55/p/6659285.html  已经有了 XML 修改UserMapper.xml <?xml version=&quo ...

  8. spring4笔记----spring4国际化

    <?xml version="1.0" encoding="GBK"?> <beans xmlns:xsi="http://www. ...

  9. mcelog用法详解

    手动启动mcelog方法: # mcelog --daemon Run mcelog in daemon mode, waiting for errors from the kernel. 后台服务启 ...

  10. 看到一个想收藏的的AJAX小列子

    用户登录的验证可以使用 form 表单提交,也可以使用 ajax 技术异步提交. AJAX 即 Asynchronous Javascript And XML(异步 JavaScript 和 XML) ...