.用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. requests+正则爬取猫眼电影前100

    最近复习功课,日常码农生活. import requests from requests.exceptions import RequestException import re import jso ...

  2. 2019.03.12 codeforces739E. Gosha is hunting(dp凸优化)

    传送门 题意:nnn个物品,有aaa个XXX道具和bbb个YYY道具,XXX道具移走第iii个物品概率为pip_ipi​,YYY道具移走第iii个道具概率为uiu_iui​. 对于每个物品每种道具最多 ...

  3. 初识 Proxysql

    1.ProxySQL 介绍和安装 ProxySQL 是一种高性能.高可用的开源中间件,适用于mysql和相关的数据库,如MariaDB官网:http://www.proxysql.com 安装 发行版 ...

  4. pointer-events: none 的两个应用场景

    简介 pointer-events: none 真是个神奇的属性. 该属性有什么用?借用 CSS3 pointer-events:none 应用举例及扩展 的总结来说: pointer-events: ...

  5. 运行纯PHP程序的时候,不应该加"?>"结束语

    运行纯PHP程序的时候,不应该加"?>"结束语 只有在和HTML混搭的时候再用?>结束语! 理由:可以让php脚本更安全的运行, 比如在脚本末尾注入换行.空格等字符,没 ...

  6. python网络爬虫开发实战(崔庆才)_14页_chromedriver环境配置和加载

    自己1,环境配置,我下载了相对应的Chromedriver(其实我也不知道对不对应,都是下载最新版的我猜应该会对应),然后在任何文件夹下输入command+shift+G,打开输入窗口,任何输入  / ...

  7. docker容器下mysql更改WordPress的site address和home(URL)------局域网

    先简单介绍下,用docker安装的WordPress,mysql是在docker容器中的,并未在Ubuntu(我把WordPress是安装Ubuntu系统上),即WordPress和Ubuntu是独立 ...

  8. Shell条件测试和流程控制-4

  9. JAVA对象和类

    Java作为一种面向对象语言.支持以下基本概念: 多态 继承 封装 抽象 类 对象 实例 方法 重载 Java中的类 类可以看成是创建Java对象的模板. 通过下面一个简单的类来理解下Java中类的定 ...

  10. SpringMVC异步文件上传下载

    首先了解一下File的构造方法: File(String pathname):根据一个路径得到File对象 File(String parent,String child):根据一个目录和一个子文件/ ...