首页 > 其他分享 >dockerfile编写总结

dockerfile编写总结

时间:2023-09-22 16:11:34浏览次数:58  
标签:总结 镜像 tomcat local usr ENV HOME 编写 dockerfile

编写Dockerfile文件
1.dockerfile结构介绍

   from 基础镜像
   maintainer 维护者信息
   run 命令前加run
   CMD 容器启动时执行的操作,可以自定义脚本,也可执行系统命令
   ENTRYPOINT 容器启动时执行的操作,设置指令指定容器启动时执行的命令,可以追加命令
   USER 容器执行shell命令的用户
   ENV 设置环境变量
   add copy文件,会自动解压,支持从远程URL获取资源
   workdir 当前工作目录
   volume 目录挂载
   expose 端口
   run 一直运行

2.例子:创建到主页的tomcat镜像容器
   (1)创建Dockerfile,内容如下
   FROM tomcat #从基础镜像
   RUN mkdir -p /usr/local/tomcat/webapps/ROOT/ #递归创建文件目录
   RUN echo 'hello world'>/usr/local/tomcat/webapps/ROOT/index.html #将一个字符串写入 index.html文件
   WORKDIR /usr/local/tomcat/webapps/ #将工作目录切换到 webapps路径下
   (2)执行创建命令,镜像构建
   docker build -t mydocker . (. 表示Dockerfile所在路径 为当前路径)

   docker images //查看到mydocker的镜像

   docker run -d --name mydocker-8081  -p 8081:8080 mydocker //基于此镜像,创建容器  

   docker exec -it mydocker-8081 /bin/bash //进入容器

   直接来到/usr/local/tomcat/webapps 目录,因为上面脚本 WORKDIR 指定了此目录为工作目录。

http://192.168.88.135:8081/index.html 访问

    

3.dockerfile例2:创建到主页的tomcat镜像容器
   FROM centos
   #设置作者
   MAINTAINER huchao [email protected]
   #拷贝tomcat jdk 到镜像内并解压
   ADD apache-tomcat-8.5.30.tar.gz /usr/local/tomcat
   ADD jdk-8u202-linux-x64.tar.gz /usr/local/jdk
   #设置工作目录
   ENV MYPATH /usr/local
   WORKDIR $MYPATH
   #配置jdk 和tomcat的环境变量
   ENV JAVA_HOME /usr/local/jdk/jdk1.8.0_202
   ENV CATALINA_HOME /usr/local/tomcat/apache-tomcat-8.5.30
   ENV CATALINA_BASE /usr/local/tomcat/apache-tomcat-8.5.30
   ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
   ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
   #设置暴露的端口
   EXPOSE 8080
   #运行tomcat
   CMD /usr/local/tomcat/apache-tomcat-8.5.30/bin/startup.sh && tail -f /usr/local/tomcat/apache-tomcat-8.5.30/logs/catalina.out

 

标签:总结,镜像,tomcat,local,usr,ENV,HOME,编写,dockerfile
From: https://www.cnblogs.com/huchao12/p/17722628.html

相关文章

  • 总结,知识的结构性
    一门程序设计语言的基本要素和技能可以概括为以下几点:语法和语义:每门语言都有自己的语法规则和语义理解,比如操作符的使用、变量的定义,如何创建和使用函数等。数据类型和数据结构:理解基本的数据类型(例如整数、浮点数、字符串等)和数据结构(例如数组、列表、字典、集合等)。控......
  • 关于编写自动调度脚本遇到的问题
    需求将入库的stg层表中日指标历史数据同步到dwd层,之前的日指标数据账期从20230820到202309181.echo输出变量导入配置文件最后的结果#!/bin/bashsource~/.bashrcsource~/.bash_profilesource/etc/profilestart_date=20230820end_date=20230918current_date=$st......
  • 基于Kubernetes的Serverless PaaS稳定性建设万字总结
    作者:许成铭(竞霄)数字经济的今天,云计算俨然已经作为基础设施融入到人们的日常生活中,稳定性作为云产品的基本要求,研发人员的技术底线,其不仅仅是文档里承诺的几个九的SLA数字,更是与客户切身利益乃至身家性命息息相关,稳定性压倒一切。本文将侧重于实际落地而非方法论,阐述云产品SAE......
  • 9.21 周四总结
    //生成1-100内的整数Randomr1=newRandom();intnum1=r1.nextInt(0,100);importjava.util.*;publicclassTestRandom{ publicstaticvoidmain(String[]args) { Randomrand=newRandom(); System.out.println("rand.nextBoolean():"+rand.nextBoo......
  • drf - 基于自定义表编写认证类、jwt源码剖析
    补充点翻译函数; 只要做了国际化处理,就会显示当前国家的语言fromdjango.utils.translationimportgettext_lazyas_msg=_('Signaturehasexpired.')#_是函数的别名,这个函数是翻译函数,只要做了国际化处理,它就是中文基于自定义表编写认证类classAuthAuthent......
  • 编写一个接受两个字符串参数的脚本。脚本应检查第一个字符串是否包含第二个参数的子串
    方法一:#!/bin/bash#检查是否提供了足够的参数if[$#-ne2];thenecho"用法:$0<主字符串><子串>"exit1fi#从命令行参数中获取主字符串和子串main_string="$1"substring="$2"#检查主字符串是否包含子串if[[$main_string==*$substring*]];then......
  • 投标文件编写经验--陪标
    1、拷贝(目标文件-源文件)尽量标题序号对应,调格式不好调2、样式:粘贴(只粘贴文本),再应用样式调格式3、*偏离项:如果内容无相关项,可以把原文件拷贝过来,放到相关内容下盖帽展示。......
  • 3-Linux文档查看指令,关机重启、相关知识点的拓展与总结
    一、文档的查看指令1、tail指令作用:查看一个文件的末n行语法:#tail-n文件的路径说明:-n可以不写,不写,默认表示10行。案例:新建一个1.txt文档,使用tail指令查看root/1.txt文件的末5行和末10行tail-5/root/1.txttail/root/1.txt2、head指令作用:查看文件的头n行语法:#hea......
  • 9月21日总结
    一.今天做了什么今天上午学了统一建模语言,然后上体育课,测了体前屈、跳远、50米跑和引体向上,所幸基本及格下午学习数据结构给我听蒙了,然后上离散课,老师讲的飞快,嘴一直突突都不听。晚上趁着选修课又学了一下二.遇到的问题,如何解决无三.明天准备做什么明天准备摆烂......
  • 每日总结
    今天进行了echart的学习<template><divref="chartContainer"style="width:400px;height:300px;"></div></template><script>importechartsfrom'echarts';exportdefault{mounted(){//创建ech......