zoukankan      html  css  js  c++  java
  • DockerFile

    ------------恢复内容开始------------

    DockerFile

    1.编写一个dockerfile文件
    2.docker build构建成一个镜像
    3.docker run 运行镜像
    4.docker push 发布镜像(DockerHub、阿里云镜像仓库)

    很多官方镜像都是基础包,很多功能都没有,通常会自己构建。

    DockerFile构建过程

    基础知识:

    1.每个关键字都是大写
    2.执行是从上到下
    3.#表示注释
    4.每一个指令都会创建提交一个新的镜像层,并提交

    FROM        ##基础镜像
    MAINTAINER  ##镜像是谁写的  姓名+邮箱
    RUN         ##镜像构建的时候需要运行命令
    ADD         ##添加内容
    WORKDIR     ##镜像的工作目录
    VOLUME      ##挂载的目录
    EXPOSE      ##暴露端口配置
    CMD         ##指定这个容器启动的时候要运行的命令,只有最后一个会生效,可被替代
    ENTRYPOINT  ##指定这个容器启动的时候要运行的命令,可以追加命令
    ONBUILD     ##当构建一个被继承DockerFile这个时候就会运行ONBUILD的指令。触发指令
    COPY        ##类似ADD,将我们的文件拷贝到镜像中
    ENV         ##构建的时候设置环境变量
    

    实战

    从网上直接拉取centos的镜像,发现有些命令使用不了,例如 pwd,vim,ifconfig

    我们直接自己定做centos镜像可以使用这些命令。
    1.编写dockerfile

    FROM centos
    
    MAINTAINER cui<1058636267>
    
    ENV MYPATH /usr/local
    
    WORKDIR $MYPATH
    
    RUN yum -y install vim
    
    RUN yum -y install net-tools
    
    EXPOSE 80
    
    CMD echo $MYPATH
    
    CMD echo "----end-----"
    
    CMD /bin/bash
    

    2.构建镜像以及测试

    docker build -f dockerfile路径 -t 镜像名:[tag]

    docker build -f /home/dockerfile/Dockerfile02 -t mycentos:1.0 .

    3.列出镜像制作的历史

    docker history 镜像id

    4.CMD和ENTRYPOINT的区别

    ##CMD
    编写dockerfile
    FROM centos
    CMD ["ls","-a"]
    
    ##docker run 镜像id -l  只能是替换   等同于linux中的  (ls -a   替换成  l)
    

    ##ENTRYPOINT
    编写dockerfile
    FROM centos
    ENTRYPOINT["ls","-a"]
    ##docker run 镜像id -l  这是命令的追加  (ls -a   追加成  ls-al)
    

    制作tomcat

    1.编写Dockerfile
    FROM centos
    MAINTAINER cui<10258636267@qq.com>
    
    COPY readme.txt /usr/local/readme.txt
    
    ADD jdk-8u202-linux-x64.tar /usr/local/
    ADD apache-tomcat-9.0.43.tar.gz /usr/local/
    RUN yum -y install vim
    
    ENV JAVA_HOME /usr/local/jdk1.8.0_202
    ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.43
    ENV CATALINA_BASH /usr/local/apache-tomcat-9.0.43
    
    EXPOSE 8080
    
    CMD /usr/local/apache-tomcat-9.0.43/bin/startup.sh && tail -F /usr/local/apache-tomcat-9.0.43/bin/logs/catalina.out
    

    2.构建镜像
    docker build -t dytomcat .

    3.运行镜像
    docker run -d -p 9090:8080 --name cuitomcat -v /home/cui/build/tomcat/test:/usr/local/apache-tomcat-9.0.43/webapps/test -v /home/cui/build/tomcat/tomcatlogs:/usr/local/apache-tomcat-9.0.43/logs dytomcat

    发布镜像

    • docker login -u 用户名 回车 输入dockerHub的密码

    • root@qsrobot:~# docker push cui/tomcat:1.0 发布到dockerHub上

    • 发布到阿里云上如下操作

    docker 总结

  • 相关阅读:
    Jquery 中止正在执行的AJAX
    SQL语句添加说明
    MINIUI基本学习笔记
    ADO.NET使用事务简单实例
    通过反射将Datetable转换为泛型List<T>
    C语言七夕必备神器,待那烟花灿烂时,依旧做个单身狗
    七夕来了,请用C 语言和我交流
    C语言第一个字符串Hello,C语言基础教程之字符串
    无形细节最为致命,C语言中与零值比较那些小事儿
    C语言讨论象棋将帅问题,代码短又美!
  • 原文地址:https://www.cnblogs.com/lvshuizhicheng/p/14394560.html
Copyright © 2011-2022 走看看