zoukankan      html  css  js  c++  java
  • Dockerfile编写语法

      docker镜像本质上就是一个个基础镜像的堆叠,为了做出我们想要的镜像,我们需要考虑最终镜像所需的所有基础环境,然后一层层堆叠.也就是不断以基础镜像搭建上层镜像.

      先看例子:

    # Version: 1.0.0
    # Create Time: 2015-12-25 11:04
    # Author: ***
    # Description:****
    
    # 基于已经配置好的jdk1.8版本进行操作
    FROM jdk:latest
    MAINTAINER ***** <********@qq.com>
    
    # 创建目录
    #RUN mkdir -p -m 777 /home
    
    # 将压缩包迁移到容器中并解压
    ADD tomcat8.tar.gz  /home/tomcat8/
    
    # 暴露文件目录
    #VOLUME ["/home/docker/file/distfirstout", "/home/docker/file/input/D001"]
    #VOLUME ["/app/tomcat8/webapps/"]
    
    # 暴露网络端口
    EXPOSE 8881
    
    # 启动服务
    ENTRYPOINT ["/home/tomcat8/apache-tomcat-8.0.24/bin/catalina.sh", "run"]

      这是一个安装tomcat镜像的dockerfile,基础镜像是一个叫jdk的镜像.

      语法介绍:

      1.FROM 基础镜像

      2.MAINTAIN 作者信息

      3.RUN 命令(该命令是运行在安装软件时,在基础镜像上面运行的命令)

      4.CMD 命令(启动容器时运行的命令,如果文件最后添加了ENTRYPOINT 命令,则该命令会被覆盖)

      5.USED 用户(设置容器操作用户)

      6.EXPOSED 端口(容器向外暴露的端口)

      7.ENV 环境变量(设置容器内环境变量)

      8.ADD 文件(添加文件)

      9.VOLUME 目录(挂在宿主机目录)

      10.WORKDIR 目录(工作目录)

      dockerfile里面所设置的这些内容实际上基本上都可以在容器启动时设定,但是想要做成一个成熟的镜像还是有比要把这些基础设置填写完全.

  • 相关阅读:
    九、linux-msyql下的mysql主从复制深度实战
    八、linux-mysql的mysql主从复制原理和实战
    七、linux-mysql下mysql增量备份与恢复
    六、linux-mysql的mysql字符集问题
    入坑django2
    python根据已有数据库生成model.py
    docker 常用命令记录
    gitlab自带的Nginx与原Nginx冲突的解决方案
    linux下PHP安装redis扩展
    jenkins自动部署代码到多台服务器
  • 原文地址:https://www.cnblogs.com/garfieldcgf/p/5462958.html
Copyright © 2011-2022 走看看