zoukankan      html  css  js  c++  java
  • dockerfile常用指令

    指令 描述 指令 描述
    FROM

    构造的新镜像是基于哪个镜像

    例如:FROM centos:v1

    COPY

    拷贝文件或者目录到镜像,用法同ADD

    例如:COPY ./startup.sh /startup.sh

    MAINTAINER

    维护者信息

    例如:MAINTAINER yanglin

    ENTRYPOINT 

    运行容器时执行的shell命令

    例如:ENTRYPOINT ["/bin/bash","-c","/startup.sh"]

    ENTRYPOINT /bin/bash -c '/startup.sh'

    RUN

    构建镜像时运行的shell命令

    例如:RUN ["yum", "install", "http"]

    RUN yum install httpd

    VOLUME

    指定容器挂载点到宿主机自动生成的目录或者其他容器

    例如:VOLUME ["/path/to/dir"]

    CMD

    运行容器时执行的shell命令

    例如:CMD ["-c","/startup.sh"]

    CMD ["/usr/sbin/sshd","-D"]

    CMD /usr/sbin/sshd -D

    USER

    为RUN,CMD,ENTRYPOINT执行命令指定运行用户

    例如:USER www

    镜像构建完成后,通过docker run运行容器时,可以通过-u参数来覆盖所指定的用户。

    EXPOSE

    指定于外界交互的端口,即容器在运行时监听的端口

    EXPOSE 8081 8082

    WORKDIR

    为RUN,CMD,ENTRYPOINT,COPY和ADD设置工作目录

    例如:WORKDIR /data

    ENV 

    设置容器内环境变量

    例如:ENV MYSQL_ROOT_PASSWORD 123456

    HEALTHCHECK

    健康检查

    HEALTHCHECK --interval=5m --timeout=3s CMD curl -f http://localhost/ ||exit 1

    ADD

    拷贝文件或者目录到镜像,如果是URL或者压缩包会自动下载或者自动解压

    例如:

    ADD hom* /mydir/
    ADD test relativeDir/

    ARG

    在构建镜像时指定一些参数

    例如:

    FROM centos:6

    ARG age=100

       1.RUN,CMD,ENTRYPOINT的区别

      A.RUN 指令:用于指定 docker build 过程中要运行的命令,可以写多条
      B.CMD和ENTRYPOINT在运行容器时运行,只能写一条,如果是写多条,最后一条生效
      C.CMD 指令指定的程序可被 docker run 命令行参数中指定要运行的程序所覆盖。
      D.ENTRYPOINT类似于 CMD 指令,但其不会被 docker run 的命令行参数指定的指令所覆盖,如果运行 docker run 时使用了 --entrypoint 选项,
    此选项的参数可当作要运行的程序覆盖 ENTRYPOINT 指令指定的程序;

    2.通过dockerfile构建Tomcat网站环境镜像

    FROM centos
    
    MAINTAINER linzi
    
    ADD apache-tomcat-8.5.37.tar.gz /usr/local/
    ADD jdk-8u191-linux-x64.rpm /root/
    RUN rpm -ivh /root/jdk-8u191-linux-x64.rpm
    WORKDIR /usr/local/apache-tomcat-8.5.37/
    ENTRYPOINT ["bin/catalina.sh","run"]
    EXPOSE 8080

     3.通过dockerfile构建ssh服务器

    FROM centos
    
    MAINTAINER linzi
    
    ENV ROOT_PASSWORD 123456
    RUN yum install -y openssh-server
    RUN echo $ROOT_PASSWORD |passwd --stdin root
    RUN ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
    RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
    CMD ["/usr/sbin/sshd","-D","&"]
    EXPOSE 22
  • 相关阅读:
    软件工程课程总结
    《构建之法》部分读书笔记
    软件工程课程作业
    本周软件工程课程感想
    软件工程课设迭代开发第八天
    软件工程课设迭代开发第五至七天
    软件工程课设迭代开发第四天
    软件工程课设迭代开发第三天
    软件工程课设迭代开发第二天
    Bresenham中点画圆法与二阶差分算法
  • 原文地址:https://www.cnblogs.com/hbxZJ/p/10250060.html
Copyright © 2011-2022 走看看