zoukankan      html  css  js  c++  java
  • 学习编写Dockerfile

    前言

            我们学习docker的话,其主要目的还是要用来改变我们部署应用程序的传统习惯,达到解放生产力,解放人力的目的。这篇则自己来熟悉一下dockerfile常用命令。并且尝试改变下生产环境手动部署应用的方式。

    常用基础命令

         FROM 该dockerfile的基础镜像

         RUN 启动时用来执行命令,通常用来执行应用程序安装和更新

         CMD docker启动时,RUN执行前默认调用的命令,多条命令的话只会执行最后一条命令。

         COPY 从上下文环境中复制文件到容器中。

         ADD 更高级的复制功能,提供解压功能。

         EXPOSE 暴露端口。

    第一个Dockerfile

         好吧,先来个hello world体检下dockerfile的便捷之处。

       

    FROM ubuntu:14.04
    MAINTAINER luck_successful@163.com
    
    RUN apt-get update
    
    CMD echo "hello docker I am garfieldzf"

     接下来就生成镜像

     docker build -t myubuntu:v1 

    执行无误后在终端里会显示hello docker I am garfieldzf

    第二个Dockerfile

        这个dockerfile则用来部署一个war包到容器中的tomcat中。在宿主机创建目录/usr/dockerfile。拷贝apache-tomcat-8.0.53.tar.gz、jdk-8u161-linux-x64.tar.gz  springMVC.war都当前目录中。

       创建Dockerfile文件并修改内容 touch Dockerfile  vi Dockerfile

    FROM centos:latest
    MAINTAINER luck_successful@163.com
    
    WORKDIR /usr
    RUN mkdir jdk
    RUN mkdir tomcat
    
    ADD jdk-8u161-linux-x64.tar.gz /usr/jdk/
    ADD apache-tomcat-8.0.53.tar.gz /usr/tomcat/
    
    ENV JAVA_HOME /usr/jdk/jdk1.8.0_161
    ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar 
    ENV CATALINA_HOME /usr/tomcat/apache-tomcat-8.0.53 
    ENV CATALINA_BASE /usr/tomcat/apache-tomcat-8.0.53 
    ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
    
    EXPOSE 8080
    
    CMD /usr/tomcat/apache-tomcat-8.0.53/bin/catalina.sh run 
    

      这里注意,我从本地下载的tomcat没有修改端口,一开始EXPOSE写的 80端口。build 和run后tomcat访问不了。这才想起来端口不对。

           构建镜像。注意后面的小数点,表示构建镜像的上下文环境。

           docker build -t garfieldzf/tomcat  . 

     构建完成使用docker images会看到刚才构建的文件

      运行镜像。 以后来运行的方式来运行。启动后会返回容器id

      docker run -d -it -p 8080:8080 garfieldzf/tomcat

      先来访问tomcat。看到tomcat跑起来,则说明容器内容tomcat已启动

             

       接下来就是把本机的war包部署到容器的tomcat目录下

       使用docker cp 把war复制到容器里。复制前先用docker ps查看容器id

       docker cp springMVC.war [容器id]:/usr/tomcat/apache-tomcat-8.0.53/webapps/

       重启容器

       docker restart [容器id]

       访问:http://192.168.80.129:8080/springMVC/

     完事。 第一个Dockerfile完成了。

       

       

  • 相关阅读:
    idea2021.2安装后不能打开如何解决?(附无限试用方法)
    Linux驱动实践:一起来梳理中断的前世今生(附代码)
    Linux驱动实践:带你一步一步编译内核驱动程序
    Linux驱动实践:驱动程序如何发送【信号】给应用程序?
    Linux驱动实践:如何编写【 GPIO 】设备的驱动程序?
    Linux驱动实践:你知道【字符设备驱动程序】的两种写法吗?
    【无源物联网】物联网的下一个风口?
    分辨率并不是越高越好,因为人眼分辨能力存在极限
    如何判断一个哈希函数的好坏
    常用设计模式单例模式
  • 原文地址:https://www.cnblogs.com/sword-successful/p/10010061.html
Copyright © 2011-2022 走看看