zoukankan      html  css  js  c++  java
  • Docker系列(三)Dockerfile 离线构建镜像

    一、Dockfile介绍:

     

      Dockfile是一种被Docker程序解释的脚本,Dockerfile由一条一条的指令组成,每条指令对应Linux下面的一条命令。Docker程序将这些Dockerfile指令翻译真正的Linux命令。Dockerfile有自己书写格式和支持的命令,Docker程序解决这些命令间的依赖关系,类似于MakefileDocker程序将读取Dockerfile,根据指令生成定制的image。相比image这种黑盒子,Dockerfile这种显而易见的脚本更容易被使用者接受,它明确的表明image是怎么产生的。有了Dockerfile,当我们需要定制自己额外的需求时,只需在Dockerfile上添加或者修改指令,重新生成image即可,省去了敲命令的麻烦。

    二、本文特点

      本文通过docker非联网状态下对docker镜像通过dockerfile搭建一个javaweb开发环境,其中jdk和tomcat都是来自本地,原始镜像,来自于本地已安装的centos原始镜像。

    三、安装

      用Dockerfile构建一个Javaweb环境,主要分为3

    1、准备工作

      将jdktomcat的进行解压,并且与Dockerfile放在同一目录。

    2、创建Dockerfile文件,并编辑

    FROM centos:latest 
    MAINTAINER *** "***@******.com" 
    # 复制本地当前目录下的jdk到容器内
    ADD jdk-8u77-linux-x64/ /usr/local/java/jdk-8u77-linux-x64/
    # 配置jdk环境
    ENV JAVA_HOME /usr/local/java/jdk1.8.0_77 
    ENV PATH $JAVA_HOME/bin:$PATH 
    ENV CLASSPATH .:$JAVA_HOME/lib 
    
    # 复制本地当前目录下的tomcat到容器内
    COPY apache-tomcat-8.0.33/ /usr/local/tomcat/apache-tomcat-8.0.33/ 
    #RUN unzip /usr/local/tomcat/apache-tomcat-8.0.33.zip 
    
    #添加运行权限
    RUN chmod +x /usr/local/tomcat/apache-tomcat-8.0.33/bin/*.sh 
    RUN chmod +x /usr/local/java/jdk-8u77-linux-x64/bin/java
    
    EXPOSE 8080 
    # 定义执行入口
    ENTRYPOINT /usr/local/tomcat/apache-tomcat-8.0.33/bin/startup.sh && /bin/bash 

    原始镜像是centos:latest,然后将jdk的和tomcat的安装包放到和dockerfile相同的目录下。

    3、通过Dockerfile构建镜像

      在Dockerfile所在的目录下构建镜像。

    docker build -t="redstarofsleep/javaweb" .

    4、最后运行镜像

    docker run -d -t -i -p 8081:8080 --name javaweb redstarofsleep/javaweb 
    
    





  • 相关阅读:
    [转]使用Visual Studio Code开发Asp.Net Core WebApi学习笔记(三)-- Logger
    [转]ASP.NET Core配置环境变量和启动设置
    [转]ASP.NET Core 指定环境发布(hosting environment)
    [转]COPY OR MOVE FILES AND FOLDERS USING OLE AUTOMATION
    [转]How to Use xp_dirtree to List All Files in a Folder
    [转]How to nest transactions nicely
    [转]Using TRY...CATCH in Transact-SQL
    [转][C#] 对List<T>取交集、连集及差集
    [转]Pass a ViewBag instance to a HiddenFor field in Razor
    Apache Ignite简介以及Ignite和Coherence、Gemfire、Redis等的比较
  • 原文地址:https://www.cnblogs.com/hdulzt/p/7834677.html
Copyright © 2011-2022 走看看