zoukankan      html  css  js  c++  java
  • docker-使用Dockerfile制作镜像

      最近项目中有使用docker,组内做了关于docker的培训,然后自己跟着研究了一下,大概了解如何使用。我是基于tomcat镜像制作(不需要安装jdk,配置环境变量),基于centos镜像制作需要安装jdk,配置环境变量,下面会详细写到。前提准备:在centos机器上安装好docker。

    一、基于tomcat镜像

    1.  搜索并tomcat镜像

    docker search tomcat

    2. 第一个的 stars最多,而且是官方的,就是你了~

     下载镜像:

    docke pull tomcat

     查看本地镜像:

    docker images

    3. 制作Dockfile文件

    (1)touch Dockerfile (没有Dockerfile 文件的话会自动创建一个)

    (2)vim Dockerfile 

    # Base image to use, this nust be set as the first line(form会先从本地镜像查找,如果没有回去docker仓库下载)
    FROM tomcat
    
    # Maintainer: docker_user <docker_user at email.com> (@docker_user)
    MAINTAINER xtt
    
    #拷贝配置文件和项目war包
    COPY xtt_only/usr/local/xinsight  /usr/local/xinsight
    ADD xtt_only/etl.war /usr/local/tomcat/webapps
    
    #配置端口号
    EXPOSE 8080
    
    # Commands when creating a new container
    ENTRYPOINT ["/usr/local/tomcat/bin/catalina.sh", "run"]

    (3)编译Dockerfile文件

    docker build -t xtt:v1 .

    备注: 
    1) -t xtt:v1  指定镜像名称为xtt ,tag为v1 
    2) 最后的一点(.)表示当前目录下的Dockerfile文件,会自动识别到当前路径下的Dockerfile文件

    4. 运行此镜像,启动容器看是否成功

    - 查看本地镜像: 

    docker images

    - 运行此镜像: 

    docker run ee4

    容器运行成功~

    - 检查一下,查看当前正在运行的容器:

    docker ps

    二、基于centos镜像

    需要下载jdk和tomcat安装包,并且在Dockerfile里面配置环境变量,其它保持不变。

    1. 将jdk和tomcat安装包拷贝到虚拟机上

    2. 修改Dockerfile文件

    FROM docker.io/centos
    
    MAINTAINER xtt
    
    #切换镜像目录(类似cd命令),进入/usr目录
    WORKDIR /usr
    
    #在/usr/下创建jdk目录,用来存放jdk文件
    RUN mkdir jdk1.8.162
    
    #将宿主机的jdk目录下的文件拷至镜像的/usr/jdk目录下
    ADD jdk1.8.0_162 /usr/jdk1.8.162/
    
    #将宿主机的tomcat目录下的文件拷至镜像的/usr/tomcat目录下,将etl的war拷贝到webapps目录下
    RUN mkdir tomcat8.5.32
    COPY tomcat8.5.32 /usr/tomcat8.5.32/
    ADD xtt_only/etl.war /usr/local/tomcat/webapps #拷贝项目环境配置文件
    COPY xtt_only/usr/local/xinsight /usr/local/xinsight
    #设置环境变量 ENV JAVA_HOME=/usr/jdk1.8.162 ENV JRE_HOME=$JAVA_HOME/jre ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH ENV PATH=/sbin:$JAVA_HOME/bin:$PATH #公开端口 EXPOSE 8080 #设置启动命令 ENTRYPOINT ["/usr/tomcat8.5.32/bin/catalina.sh","run"]

    备注: 
    1) FROM 表示基于哪个基础镜像制作镜像,这里是基于ubuntu的最新镜像 

    2) MAINTAINER 表示由哪个人维护这个镜像 

    3) ADD 、COPY表示将宿主机上的文件复制到镜像的指定目录,ADD比COPY多一个特性:如果是压缩包拷贝过去会自动解压(源路径一定要是Dockerfile的相对路径)

    4) ENV 表示指定环境变量 

    5) RUN 运行指定的命令,格式:RUN+ linux命令(RUN mkdir 创建目录)

    6) EXPOSE 8080 指定暴露8080端口 

    7) ENTRYPOINT 进入点,后面跟的是需要执行的脚本

  • 相关阅读:
    leetcode 第41题 Trapping Rain Water
    leetcode第40题--First Missing Positive
    leetcode第39题--Combination Sum II
    leetcode第38题--Combination Sum
    leetcode第37题--Count and Say
    17_7_18 servlet 动态工程 先加载servlet request注意事项
    17_7_13 Servlet分页思路
    17_7_12 tomcat 安装+(java+tomcat)环境变量+windows安装报错:JRE_HOME
    17_7_12 JDBC 中的 DBCP(链接池)和 Servlet Web工程之间的差异
    17_7_12 DBCP 中 ResultSet 判断是否有值 +判断 一个对象是否包含在数据库中
  • 原文地址:https://www.cnblogs.com/evaxtt/p/9669897.html
Copyright © 2011-2022 走看看