码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Dockerfile文件详解


    组成部分

    说明

    基础镜像信息

    使用 FROM 关键字指定基础镜像信息,必须是 Dockerfile 文件的第1条指令。

    维护者信息

    使用 MAINTAINER 关键字指定,可以使用 Dockerfile 文件创建者的姓名或者电子邮件作为维护者信息。

    镜像操作指令

    每执行一条镜像操作指令,将在镜像中添加新的一层。可以根据需要使用一条或者多条镜像操作指令。

    常见的镜像操作指令有:RUN、COPY、ADD、EXPOSE、WORKDIR、ONBUILD、USER、VOLUME 等。

    容器启动执行指令

    用于指定在启动容器时需要执行的命令,通过关键字 CMD、ENTRYPOINT 指定。

    在完成 Dockerfile 文件的编写后执行 docker build 命令,会根据 Dockerfile 文件中上下文的内容构建新 docker 镜像。这个构建过程会被递归处理。因此,如果在 Dockerfile 文件中含有子路径或者 url 等信息,都被递归处理。

    docker build 命令在使用 Dockerfile 文件生成镜像时,会通过 docker 守护进程执行 Dockerfile 文件中的每一条指令,并在每一步执行完成后生成一个新镜像。当所有指令执行完成后,会输出最终镜像的 id。

    当镜像最终生成后,docker 守护进程会自动清理 docker 的上下文环境,并自动重用已生成的中间镜像,以加速构建的速度。

    创建 Dockerfile 文件

    1. sudo tee Dockerfile <<-'EOF'
    2. FROM centos
    3. MAINTAINER 'rike'
    4. RUN mkdir /root/training
    5. RUN mkdir /root/tools
    6. COPY openlogic-openjdk-8u342-b07-linux-x64.tar.gz /root/tools
    7. RUN tar zxvf /root/tools/openlogic-openjdk-8u342-b07-linux-x64.tar.gz -C /root/training
    8. ENV JAVA_HOME /root/training/openlogic-openjdk-8u342-b07-linux-x64
    9. ENV PATH $JAVA_HOME/bin:$PATH
    10. COPY apache-tomcat-8.5.84.tar.gz /root/tools
    11. RUN tar zxvf /root/tools/apache-tomcat-8.5.84.tar.gz -C /root/training
    12. COPY MyDemoWeb.war /root/training/apache-tomcat-8.5.84/webapps
    13. ENTRYPOINT ["/root/training/apache-tomcat-8.5.84/bin/catalina.sh","run"]
    14. EOF

  • 相关阅读:
    【营养学01】肾脏:脱发以及白头
    大数据培训教程Combiner合并
    双倍数据速率I/O (ALTDDIO_IN、ALTDDIO_OUT)使用方法
    《视觉 SLAM 十四讲》第 7 讲 视觉里程计1 【如何根据图像 估计 相机运动】【特征点法】
    魏副业而战:做闲鱼副业项目,要多模仿同行
    .Net Core&RabbitMQ死信队列
    Spring Cloud Alibaba 容器化部署最佳实践 | 本地部署版本 | Rocketmq组件安装
    Backtrader绘图cerebro.plot报错问题的处理
    Java 大厂面试 —— 常见集合篇 List HashMap 红黑树
    【JavaEE】 饿汉模式与懒汉模式详解与实现
  • 原文地址:https://blog.csdn.net/zlpzlpzyd/article/details/128066570
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号