• 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 进入点,后面跟的是需要执行的脚本

  • 相关阅读:
    每天一个linux命令(1):man命令
    安卓名词积累
    每天一个Linux命令:目录
    ubuntu下Python的安装和使用
    嵌入式基础知识(1):存储
    2月份学习笔记
    AndroidStudio 中的坑Error:(1, 0) Plugin is too old, please update to a more recent version, or set ANDROID_DAILY_OVERRID
    AndroidStudio开发出现Warning:Gradle version 2.10 is required. Current version is 2.8. If u
    Git 问题
    判断年 月的值
  • 原文地址:https://www.cnblogs.com/evaxtt/p/9669897.html
Copyright © 2020-2023  润新知