镜像文件怎么制作

镜像文件怎么制作,第1张

dockerfile制作apache镜像的方法

本文详细介绍了dockerfile制作apache镜像的方式,对大家来说非常详细。对大家的学习、培训或者工作都有一定的参考价值,有需要的朋友可以参考一下。

一、Docker镜像

1.1对接镜

它使用发布的标准文件格式
来支持docker容器的 *** 作。

1.2如何创建docker图像

  • 从现有镜像创建。
  • 根据本地模板创建
  • 从Dockerfile创建
  • Docker镜像是一个层次结构。

    ①Dockerfile中的每一条指令都会创建一个新的镜像层
    ②镜像层会被缓存复用
    ③当dockerfile的指令发生变化,复制的文档发生变化,或者镜像建立时具体的自变量不同时,匹配的镜像层缓存文件会失效
    ④某一层的镜像层缓存文件失效后,后续的所有镜像层缓存文件都会失效
    ⑤镜像如果文档被添加到某一层,然后在下一层被删除,该文件仍将包含在镜像中。

    二、根据现有的镜像创建案例

    将程序流程和软件环境打包在容器中,形成新的镜像。

    Dockercommit选项要创建的映像的容器id名称:ID
    -m:指示信息
    -a:创建者信息
    -p:在整个形成过程中停止容器的 *** 作。

    情况

    [root@server1~]#dockerps-a#目前容器 CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES 86cf506635dacentos:7"/bin/bash"6secondsagoUp5secondsnervous_shockley [root@server1~]#dockercommit-m"image"-a"zf"-p86cf506635dadocker:new#创建docker:new镜像 sha256:e3056b40acd772abc9a39c7c4f3cb42ba119eb9396b32fb275414f00e82d55b2 [root@server1~]#dockerimages#查询形成的镜像 REPOSITORYTAGIMAGEIDCREATEDSIZE dockernewe3056b40acd79secondsago267MB centos74f280dc8c80721hoursago267MB #最好是终止容器再创建镜像 三、根据当地模版创建

    根据导入到计算机 *** 作系统中的模板文档,形成新的镜像
    ,使用wget指令将其作为本地镜像导入。

    [root@server1~]#catdebian-7.0-x86-minimal.tar.gz|dockerimport-daoke:new#导进模版取名镜像名叫daoke:new [root@server1~]#dockerimages#查询形成的镜像 REPOSITORYTAGIMAGEIDCREATEDSIZE daokenew61b2d8af045738secondsago215MB dockernewe3056b40acd710minutesago267MB centos74f280dc8c80722hoursago267MB

    四、根据Dockerfile创建

    Dockerfile是由一组指令组成的文档。

    文档结构:

  • 基本镜像信息
  • 维护者信息
  • 镜像实际 *** 作说明
  • 容器开始执行指令
  • Dockerfile适用于每行一条指令,每条指令可以携带几个主要参数。以“#”开头的注释适用。

    Dockerfile实际 *** 作说明:

    指令 表达 MirrorFROM 特定新镜像所基于的镜像。第一条指令必须是FROM指令。 维护者名称 表示新镜像的维护者信息 运行命令 在命令所基于的镜像上运行命令,并将其提交给新镜像 CMD["要 *** 作的程序流","主参数1,"主参数2"] 指令容器启动时要 *** 作的指令或脚本。Dockerfile只有一个cmd命令,如果有几个特定的命令,则只执行最后一个命令 暴露服务器端口 暴露镜像服务器端口,这样可以很容易地 *** 作镜像并将其投射到外部连接点应用程序 环境变量变量类型 设置系统变量的值,该值将由下面的运行应用 添加源代码/目录整体目标文档/目录 将文档从主机复制到容器。如果压缩文件,缓解压力,源代码应该和Dockerfile 在同一个目录下复制源代码/目录整体目标文档/目录 将本地服务器上的文档/目录复制到整体目标地址,源代码/目录要和Dockerfile在同一个目录下 VOLUME["directory"] 在容器中创建一个挂载点 *** 作集装箱时的用户登录名/UID 客户 WORKDIRpath 是事件后RUN、CMD、ENTRYPOINT的具体工作目录,相当于cd ONBUILD命令 指定当形成的图像是基本图像时要 *** 作的命令 。健康 体检

    情况

    [root@server1~]#mkdirapache#创建镜像目录 [root@server1~]#cdapache/ #创建Dockerfile [root@server1apache]#viDockerfile FROMcentos:7#根据的基本镜像,在centos核心运作 MAINTAINERthisiszzfweb#维护者信息 RUNyum-yupdate RUNyum-yinstallhttpd EXPOSE80#打开80端口,给外界投射用 ADDindex.html/var/www/html/index.html#将宿主机网址文档添加到镜像内 ADDrun.sh/run.sh#将实行脚本制作拷贝到镜像内 RUNchmod755/run.sh#提权 CMD["/run.sh"]#起动容器时实行脚本制作,打开Apache服务项目 #当今目录里创建index.html和run.sh [root@server1apache]#virun.sh #!/bin/bash rm-rf/run/httpd/* exec/usr/sbin/apachectl-DFOREGROUND#起动容器时起动服务项目 [root@server1apache]#viindex.html hello #创建镜像,务必在当今有Dockerfile的目录下,留意空格符加.意味着当今目录 [root@server1apache]#dockerbuild-thttp:centos. #查询创建的镜像 [root@server1apache]#dockerimages REPOSITORYTAGIMAGEIDCREATEDSIZE httpcentos5db0e8103d545minutesago539MB daokenew61b2d8af045733minutesago215MB dockernewe3056b40acd743minutesago267MB centos74f280dc8c80722hoursago267MB #运作镜像为容器 -p为映射端口,将容器端口号80投射为寄主服务器端口号1212(务必是未被占有的) -P不特定连接点端口号,任意特定端口号,默认设置从32168端口号刚开始分派 [root@server1apache]#dockerrun-d-p1212:80http:centos #查询容器情况 [root@server1apache]#dockerps-a CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES a8fa8ae6be42http:centos"/run.sh"3minutesagoUp3minutes0.0.0.0:1212->80/tcpxenodochial_franklin 86cf506635dacentos:7"/bin/bash"48minutesagoUp48minutesnervous_shockley

    关闭防火墙并检测Apache服务项目。

    至此,这篇关于dockerfile如何制作apache镜像的文章已经在这里详细介绍过了。有关dockerfile制作镜像的大量信息,请搜索您以前的文章或再次访问下面的相关文章。期待你以后的申请!

    欢迎分享,转载请注明来源:内存溢出

    原文地址: https://outofmemory.cn/zz/774058.html

    (0)
    打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
    上一篇 2022-05-03
    下一篇 2022-05-03

    发表评论

    登录后才能评论

    评论列表(0条)

    保存