.用docker commit构建映像
  .docker run -i -t centos /bin/bash  //启动一个容器,启动后默认进入该窗口的bash进程
  .yum install -y epel-release.noarch  //为启动的窗口安装软件源
  .yum install -y nginx  //为启动的容器安装nginx
  .exit  //退出该容器,回到宿主机环境
  .docker commit 容器ID dingyingsi/nginx  //将上次创建的窗口ID当作映像提交到本地,dingyingsi是repository名称,nginx是image名称
  .docker images  //可以查看到上步提交的映像
  注意:
    1.一定要区分开容器和映像的区别;
    2.有了dingyingsi/nginx后,下次可以直接使用该映像来启动容器,而不用为这个容器安装nginx;
    3.docker commit -m="this is a container contains nginx" --author="dingyingsi" 容器ID dingyingsi/nginx,类似git不作多余解释;
 2.Dockerfile构建映像

 1.创建Dockerfile文件:

 2.docker build -t="dingyingsi/nginx:dockerfile" .  //运行这个命令开始用Dockerfile构建映像,当前目录中一定要包含Dockerfile文件;
 3.docker images  //可以查看到上步提交的映像
 3.在使用Dockerfile构建映像时,如果将Dockerfile脚本中RUN yum install -y nginx改成 RUN yum install -y ngin 构建过程就会失败。如下图:
  在Dockerfile中, 每RUN指令执行时,都会创建一个新的映像层,当每个RUN指令执行完时,会自动提交该层;因此RUN指令在哪上步出错时,只需要用docker run 命令进入该映像层对应的上一次未出错容器即可;
  上将中nginx写错成ngin,故执行时出错,只需要运行  docker run -i -t b677fae24538 /bin/bash ,即可进入 RUN yum install -y epel-release.noarch 对应的映像层容器;
  在此映像层容器中执行yum install -y ngin命令,即可得到错误详细提示;
 
 
 

Docker 构建映像的更多相关文章

  1. [转]利用Docker构建开发环境

    利用Docker构建开发环境 Posted by  makewonder on 2014 年 4 月 2 日   最近接触PAAS相关的知识,在研发过程中开始使用Docker搭建了自己完整的开发环境, ...

  2. 使用Docker构建持续集成与自动部署的Docker集群

    为什么使用Docker " 从我个人使用的角度讲的话  部署来的更方便 只要构建过一次环境 推送到镜像仓库 迁移起来也是分分钟的事情 虚拟化让集群的管理和控制部署都更方便 hub.docke ...

  3. Dockerfile与Docker构建流程解读

    摘要 本文主要讨论了对docker build的源码流程进行了梳理和解读,并分享了在制作Dockerfile过程中的一些实践经验,包括如何调试.优化和build中的一些要点.另外,还针对现有Docke ...

  4. selenium结合docker构建分布式测试环境

    selenium是目前web和app自动化测试的主要框架.对于web自动化测试而言,由于selenium2.0以后socker服务器由本地浏览器自己启动且直接通过浏览器原生API操作页面,故越来越多的 ...

  5. 使用Spring Cloud和Docker构建微服务架构

    原文:https://dzone.com/articles/microservice-architecture-with-spring-cloud-and-do 作者:Alexander Lukyan ...

  6. 两种简单的方法Docker构建LANMP

    在初步入门学习Docker的过程中一步步了解了Docker容器在团队开发中所起到的作用,一边学习一边操作基本命令,当然到现在还处于一个擦边的入门阶段. 尝试一下用Docker构建一个集成开发环境. S ...

  7. DevOps实践之一:基于Docker构建企业Jenkins CI平台

    基于Docker构建企业Jenkins CI平台 一.什么是CI 持续集成(Continuous integration)是一种软件开发实践,每次集成都通过自动化的构建(包括编译,发布,自动化测试)来 ...

  8. Docker 构建 RabbitMQ 集群

    刚开始,关于RabbitMQ集群的搭建,我找到了这篇文章:Docker 安装 RabbitMQ 集群 从而找到了第三方的RabbitMQ集群容器 rabbitmq-server 但是这个容器只有3.6 ...

  9. 物联网架构成长之路(25)-Docker构建项目用到的镜像1

    0. 前言 现在项目处于初级阶段,按照规划,先构建几个以后可能会用到的Image,并上传到阿里云的Docker仓库.以后博客中用到的Image,大部分都会用到这几个基础的Image,构建一个简单的物联 ...

随机推荐

  1. Linux常用的工具软件安装

    一. linux简单介绍 linux的优势 可靠的安全性,良好的稳定性,完善的网络功能 跨平台的硬件支持,丰富的软件支持,多用户多任务 Linux的发行版本 Redhat 红帽子,最大稳定 CentO ...

  2. idea安装了Mybaits Plugin插件后,启动不起来了

    之前安装了一些插件,谁知道重启完了之后,直接启动不起来了,报错信息如下: cannot load project fatal error initializing plugin com.seven7. ...

  3. C#HTTP请求之POST请求和GET请求

    POST请求 /// <summary> /// POST请求获取信息 /// </summary> /// <param name="url"> ...

  4. Python开发——16.HTML

    一.HTML 1.服务端 import socket def main(): sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM) sock. ...

  5. WebServices 注解汇总

    Web Service 元数据注释 @WebService 1.serviceName: 对外发布的服务名,指定 Web Service 的服务名称:wsdl:service.缺省值为 Java 类的 ...

  6. 排序算法(sorting algorithm) 之 选择排序(selection sort)

    https://en.wikipedia.org/wiki/Selection_sort loop1: 4,6,1,3,7 -> 4,6,1,3,7 4,6,1,3,7 -> ,3,7 1 ...

  7. appium安装问题集锦

    问题一: MacBook-Air:Cellar$ npm -v dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.61.dyl ...

  8. vue solt 属性浅析

    solt 也就是插槽,通俗的讲也是和div,span,p等类似的html标签,只是solt是子组件中的html标签.它显示不显示完全是由父组件决定的, 但是显示的位置是由子组件自己决定的.插槽主要分为 ...

  9. 微信接收QQ邮箱e-mail

  10. python中字典的操作

    ----------字典操作------------ --查字典1. 字典名["元素名称"]2. 字典名.get("元素名称")-获取不存在得元素名称,.get ...