dockerfile编写总结

发布时间 2023-09-22 16:09:24作者: 枫飘过的天1

编写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 admin@qq.com
   #拷贝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