.用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. 走进JDK(十二)------TreeMap

    一.类定义 TreeMap的类结构: public class TreeMap<K,V> extends AbstractMap<K,V> implements Navigab ...

  2. 大数据项目测试<二>项目的测试工作

    大数据的测试工作: 1.模块的单独测试 2.模块间的联调测试 3.系统的性能测试:内存泄露.磁盘占用.计算效率 4.数据验证(核心) 下面对各个模块的测试工作进行单独讲解. 0. 功能测试 1. 性能 ...

  3. Batch_Size对网络训练结果的影响

    最近在跑一些网络时发现,训练完的网络在测试集上的效果总是会受Batch_Size 大小的影响.这种现象跟以往自己所想象的有些出入,于是出于好奇,各种搜博客,大致得出了自己想要的答案,现写一篇博客记录一 ...

  4. HTML之二 -特殊标签 与数据交互标签

    1.<img>  标签 © <h1> <img src="1.jpg" width="200" height="200& ...

  5. Paper | 深度网络中特征的可迁移性

    目录 1. 核心贡献 2. 实验设置 2.1. 任务设置 2.2. 网络设置 3. 实验结果 4. 启发 论文:How transferable are features in deep neural ...

  6. 所有子节点、Procedure、MySQL

    在Oracle 中我们知道有一个 Hierarchical Queries 通过CONNECT BY 我们可以方便的查了所有当前节点下的所有子节点.但很遗憾,在MySQL的目前版本中还没有对应的功能. ...

  7. 【Spring】入门HelloWorld

    参考:https://www.yiibai.com/spring/spring-tutorial-for-beginners.html 一.创建项目 1.利用IntelliJ创建Maven项目 2.配 ...

  8. extjs__(grid Panel绑定数据)

    1.修改面板名称 双击My Panel  就可以进行修改 2拖入一个grid  panel绑定数据 3.创建一个model  只是为了创建一个模型  相当于java中的模型层  只是数据的一个标准 4 ...

  9. spark配置参数

    ~/.bashrc export SPARK_HOME=/usr/local/spark export PATH=$PATH:$SPARK_HOME/bin /usr/local/spark/conf ...

  10. Linux基础操作命令

    一.系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 – (SMBIO ...