基于已有的镜像容器进行创建

[root@localhost opt]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS              PORTS               NAMES
19ed00c77db9        centos:7            "/bin/bash"              About a minute ago   Up About a minute                       quizzical_northcutt
fd562f234cca        nginx:latest        "/docker-entrypoint.…"   41 minutes ago       Up 5 minutes        80/tcp              cranky_agnesi[root@localhost opt]# docker commit -m "new" -a "docker" 19ed00c77db9 docker:test
sha256:13d5c0ea9bc703a1923f0d2968d4602f85a40eff98a3f5ce7436046c8bee46f9
[root@localhost opt]# docker images | grep docker
docker                test                13d5c0ea9bc7        12 seconds ago      203MB

基于本地模板创建

准备模板包debian-7.0-x86-minimal.tar.gz
[root@localhost opt]# cat debian-7.0-x86-minimal.tar.gz | docker import - docker:new
sha256:f924115851b55619925de9bdcb88a65640a13c7a056b7eb0ee2d245c428de837
[root@localhost opt]# docker images | grep new
docker                new                 f924115851b5        10 seconds ago      215MB

基于Dockerfile创建

[root@localhost opt]# mkdir apache
[root@localhost opt]# cd apache
[root@localhost apache]# vim Dockerfile
FROM centos:7
MAINTAINER alis
RUN yum -y update
RUN yum -y install httpd
EXPOSE 80
ADD index.html /var/www/html/index.html
ADD run.sh /run.sh
RUN chmod 755 /run.sh
CMD ["/run.sh"][root@localhost apache]# vim run.sh
#!/bin/bash
rm -rf /run/httpd/*
exec /usr/sbin/apachectl -D FOREGROUND[root@localhost apache]# echo "this is web test" > index.html

上面的文件准备好后,生成镜像

[root@localhost apache]# docker build -t httpd:centos .
新镜像运行容器
先看一下
[root@localhost apache]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
19ed00c77db9        centos:7            "/bin/bash"              17 minutes ago      Up 17 minutes                           quizzical_northcutt
fd562f234cca        nginx:latest        "/docker-entrypoint.…"   57 minutes ago      Up 21 minutes       80/tcp              cranky_agnesi
[root@localhost apache]# docker images
REPOSITORY            TAG                 IMAGE ID            CREATED              SIZE
httpd                 centos              8ec76c3d831d        About a minute ago   419MB
docker                new                 f924115851b5        10 minutes ago       215MB
docker                test                13d5c0ea9bc7        12 minutes ago       203MB
nginx                 web                 21d257122e0c        44 minutes ago       131MB
nginx                 latest              c39a868aad02        3 days ago           133MB
centos                7                   7e6257c9f8d8        3 months ago         203MB
paigeeworld/centos7   latest              4cbe7aa905e7        6 years ago          382MB
运行
[root@localhost apache]# docker run -d -p 1216:80 httpd:centos
be0fdd9831fe2d8297df535d163eb94f1a7d3e6a5e11e7758cc5b57d7814abc2
看一下,容器运行了
[root@localhost apache]# docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                  NAMES
be0fdd9831fe        httpd:centos        "/run.sh"                4 seconds ago       Up 3 seconds        0.0.0.0:1216->80/tcp   practical_poincare
19ed00c77db9        centos:7            "/bin/bash"              18 minutes ago      Up 18 minutes                              quizzical_northcutt
fd562f234cca        nginx:latest        "/docker-entrypoint.…"   58 minutes ago      Up 22 minutes       80/tcp                 cranky_agnesi

Docker镜像创建的三种方式详解——dockerfile制作apache镜像相关推荐

  1. mysql 删除数据表中数据_Mysql-删除数据表-三种方式详解

    Mysql 删除数据表的三种方式详解 用法: 1.当你不再需要该表时, 用 drop; 2.当你仍要保留该表,但要删除所有记录时, 用 truncate; 3.当你要删除部分记录或者有可能会后悔的话, ...

  2. 全站仪与计算机之间的数据传输,必看!全站仪数据传输的三种方式详解,都安排得明明白白(上)...

    原标题:必看!全站仪数据传输的三种方式详解,都安排得明明白白(上) 科力达全站仪数据传输 一般而言,全站仪的数据传输方式有三种,分别是通过串口.USB.SD卡三种方式,因为电脑配置等因素的不同,一些数 ...

  3. 【Linux】部署Springboot项目到Linux服务器以及linux服务器下载文件的三种方式详解

    Linux学习之路 初识Linux Linux内核 由芬兰人林纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写 Linux 是一套免费使用和自由传播的类Unix操作系 ...

  4. 多表连接的三种方式详解 HASH JOIN MERGE JOIN NESTED LOOP

    在多表联合查询的时候,如果我们查看它的执行计划,就会发现里面有多表之间的连接方式. 之前打算在sqlplus中用执行计划的,但是格式看起来有点乱,就用Toad 做了3个截图. 从3张图里我们看到了几点 ...

  5. uni-app小程序引入iconfont的三种方式详解(无需下载文件到项目)

    重要背景说明 官网iconfont的引入方式有三种分别为:Unicode.Font class.Symbol, 其中已明确说明 Unicode.Font class 这两种引入方式 不支持多色. 单色 ...

  6. php 多参数函数,php自定义函数的参数在函数间传递的三种方式详解

    在调用函数时,需要向函数传递参数,被传入的参数成为实参,而函数定义时的参数为形参.上一章节我们对php自定义函数的参数进行了实例讲解,本章节就重点介绍一下函数间参数传递的3种方式:按照值传递,按引用传 ...

  7. 【REACT NATIVE 系列教程之四】刷新组件RENDER(重新渲染)的三种方式详解

    本站文章均为 李华明Himi 原创,转载务必在明显处注明:  转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/react-native/2242.html ...

  8. 删除mysql表_Mysql 删除数据表的三种方式详解

    用法: 1.当你不再需要该表时, 用 drop; 2.当你仍要保留该表,但要删除所有记录时, 用 truncate; 3.当你要删除部分记录或者有可能会后悔的话, 用 delete. 删除程度可从强到 ...

  9. Mysql 删除数据表的三种方式详解

    用法: 1.当你不再需要该表时, 用 drop; 2.当你仍要保留该表,但要删除所有记录时, 用 truncate; 3.当你要删除部分记录或者有可能会后悔的话, 用 delete. 删除程度可从强到 ...

最新文章

  1. DEBIAN vim的语法高亮和自动縮进
  2. android studio 的AVD Manager点击无响应解决办法
  3. 高大上的介绍实时流式计算!
  4. cnn验证码识别代码_中文项目:快速识别验证码,CNN也能为爬虫保驾护航
  5. IOS开发之格式化日期时间的使用 编程中常见问题
  6. 电源功耗压力测试软件,开关电源负载测试经验分享——这篇三分钟小文章着实令人“心动”...
  7. python+mysql库+json_用python写爬虫-5.1json用pandas入mysql库
  8. 论文浅尝 | Distant Supervision for Relation Extraction
  9. Dubbo-Admin 正式支持 3.0 服务治理
  10. 经典面试题(22):以下代码将输出的结果是什么?
  11. Python_排序算法实现
  12. 大屏实时监控-2019年CSDN博客之星年度总评选(2019-01-20 23:30)
  13. 使用 ADSync 集成 IBM Lotus Domino Directory 和 Microsoft Active Directory
  14. 怎样才算是一个好的老师???
  15. 全球行业品牌“中国制冷展”将亮相汉渝 寻觅发展新空间
  16. java中如何插入表格_Java如何向Word文档中添加表格?
  17. python中取余%
  18. 计网PPT 第八章 互联网上的音频和视频服务
  19. C1认证之web基础知识及习题——我的学习笔记
  20. 【React】React介绍环境搭建

热门文章

  1. go文件下载(普通文件和压缩文件)
  2. RQNOJ 篝火晚会
  3. 五险一金真的那么重要吗?为什么很多人宁愿做小时工不要五险一金?
  4. CobaltStrike(CS)与MetasploitFramework(MSF)联动
  5. Java面试题(一)100家大公司java笔试题汇总
  6. java数组初始化的方式,java中初始化数组的方式有几种
  7. 数据分析与预测(二)——pandas 函数read_csv解析
  8. Fabric区块链开发详解
  9. 硬件-ESP32S模块资料介绍
  10. pulseaudio-webrtc-audio-processing的编译环境搭建