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完成了。

       

       

  • 相关阅读:
    HDU 4492 Mystery (水题)
    UVA 10480 Sabotage (最大流)
    POJ 2446 Chessboard (二分匹配)
    VS2008下用MFC 的MSComm控件编写串口程序
    退役了~~~
    STL Algorithms 之 unique
    cocos2d中CCCallFuncND传参数的注意事项
    好太太晾衣架市场价格表(仅供参考)
    Linux VNC黑屏(转)
    C++ TinyXml操作(含源码下载)
  • 原文地址:https://www.cnblogs.com/sword-successful/p/10010061.html
Copyright © 2011-2022 走看看