• docker系列6:dockerFile构建镜像


    一、dockerFile简介:

    dockerfile用于构建Docker镜像,DockerFile涉及的内容 包括执行代码或者是文件、环境变量、依赖包、运行时环境、动态链接库、操作系统的发行版、服务进 程和内核进程等等。在docker环境下,项目从开发到运行的流程为:开发应用、编写DockerFile文件、构建为镜像、上传到仓库(私有仓库,公有仓库)、 下载镜像、启动运行。

     

    二、dockerFile构建过程:

    1、编写DockerFile文件

    2、docker build 构建镜像

    3、docker run

     

    三、dockerFile基本指令

    FROM # 基础镜像,当前新镜像是基于哪个镜像的
    MAINTAINER # 镜像维护者的姓名混合邮箱地址
    RUN # 容器构建时需要运行的命令
    EXPOSE # 当前容器对外保留出的端口
    WORKDIR # 指定在创建容器后,终端默认登录的进来工作目录,一个落脚点
    ENV # 变量
    ADD # 将宿主机目录下的文件拷贝进镜像且ADD命令会自动处理URL和解压tar压缩包
    COPY # 类似ADD,拷贝文件和目录到镜像中!
    VOLUME # 容器数据卷,用于数据保存和持久化工作
    CMD # 指定一个容器启动时要运行的命令,dockerFile中可以有多个CMD指令,但只有最后一个生效!
    ENTRYPOINT # 指定一个容器启动时要运行的命令!和CMD一样
    ONBUILD # 当构建一个被继承的DockerFile时运行命令,父镜像在被子镜像继承后,父镜像的ONBUILD被触发

    四、dockerFile构建自定义镜像

    案例一、在自定义镜像centos下安装vim命令

    1、检查宿主机中是否存在centos镜像,如果不存在则下载镜像:docker pull centos

     

    2、在宿主机中的/home目录下新建并编写dockerfile文件

    FROM centos     # 基础镜像
    
    MAINTAINER xueheng<24736743@qq.com>  # 镜像维护者的姓名混合邮箱地址
    
    ENV MYPATH /usr/local    # 定义一个变量
    
    WORKDIR $MYPATH    # 指定在创建容器后,终端默认登录的进来工作目录/usr/local
    
    RUN yum -y install vim    # 容器构建时需要运行的命令
    
    RUN yum -y install net-tools    # 容器构建时需要运行的命令
    
    EXPOSE 80    # 当前容器对外保留出的端口
    
    CMD echo $MYPATH
    CMD echo "----------end--------"
    CMD /bin/bash    # 指定一个容器启动时要运行的命令,dockerFile中可以有多个CMD指令,但只有最后一个生效!

    3、构建镜像。在dockerfile文件所在目录下执行构建,注意后面有个点

    docker build -f dockerfile -t custom_centos:0.1 .

    4、查看镜像:docker images

    5、进入镜像,检查在dockerfile文件中设置的根目录是否生效

    6、检查vim命令是否可用

    案例二、在自定义镜像centos下安装jdk

    1、在宿主机中的/home目录下新建custom_centos目录。准备c.txt文件以及jdk

     

    2、在custom_centos目录下编写dockerfile文件

    FROM centos
    MAINTAINER xueheng<24736743@qq.com>
    #把宿主机当前上下文的c.txt拷贝到容器/usr/local/路径下
    COPY c.txt /usr/local/cincontainer.txt
    #把java添加到容器中
    ADD jdk-8u161-linux-x64.tar.gz /usr/local/
    #安装vim编辑器
    RUN yum -y install vim
    #设置工作访问时候的WORKDIR路径,登录落脚点
    ENV MYPATH /usr/local
    WORKDIR $MYPATH
    #配置java环境变量
    ENV JAVA_HOME /usr/local/jdk1.8.0_161
    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

    3、构建镜像。构建custom_centos目录,注意后面有个点

    docker build -t custom_centos .

    4、查看镜像:docker images

     

    5、进入镜像,检查在dockerfile文件中设置的根目录是否生效

     

    6、检查java命令是否可用

     

     

     

  • 相关阅读:
    分享最好的HTML5编码教程和参考手册
    随机字符变换效果的jQuery插件开发教程
    拒绝用SEO的眼光来设计你的Meta标签
    GBin1教程:使用jQuery插件jquery.validationEngine实现表单验证功能
    vs 2010 程序发布时出现 TransformXml任务意外失败
    CSS hack
    javascript div 弹出可拖动窗口
    Javascript String类的属性及方法
    兼容浏览器的布局CSS
    该伙伴事务管理器已经禁止了它对远程/网络事务的支持
  • 原文地址:https://www.cnblogs.com/XueTing/p/13797691.html
Copyright © 2020-2023  润新知