• 构建dockerfile的13个命令


    1、Dockerfile的基本指令有十三个,分别是:FROM、MAINTAINER、RUN、CMD、EXPOSE、ENV、ADD、COPY、ENTRYPOINT、VOLUME、USER、WORKDIR、ONBUILD

    基础镜像信息 FROM
    维护者信息 MAINTAINER
    镜像操作指令 RUN、COPY、ADD、EXPOSE、WORKDIR、ONBUILD、USER、VOLUME等
    容器启动时执行指令 CMD、ENTRYPOINT

    2、FROM :指定基础镜像
    FROM livingobjects/jre8

    3、RUN:执行命令
    RUN apk add --no-cache tzdata
    RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ >

    4、COPY:复制文件
    将文件从宿主机复制到镜像内,源文件需要和dockerfile在同一个目录
    COPY update.json /usr/local/nginx/share/html/

    5、CMD:容器启动命令
    容器启动时执行的命令,只有最后一个生效
    CMD /bin/bash

    6、MAINTAINER:指定作者
    MAINTAINER lao.san lao.san@gmail.com

    7、EXPOSE:暴露端口
    也可以运行时暴露docker run -p 8080:80
    EXPOSE 8080

    8、WORKDIR:配置工作目录
    进入目录,如不存在会创建
    WORKDIR /usr/local/nginx/share/html/

    9、ENTRYPOINT:容器启动执行命名
    ENTRYPOINT和CMD语法相同,区别在于:
    1)CMD的命令会被docker run的命令覆盖而ENTRYPOINT不会
    2)CMD和ENTRYPOINT都存在时,CMD的指令变成了ENTRYPOINT的参数,并且此CMD提供的参数会被 docker run 后面的命令覆盖

    ENTRYPOINT [“java”,"-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar","–spring.profiles.active=test"]

    10、VOLUME:挂载本地目录或文件
    VOLUME /tmp

    11、USER:指定后续执行命令的用户
    USER daemon

    12、ADD:添加文件
    用法和COPY相同
    ADD sdp-bi-datax-business.jar app.jar

    13、ONBUILD:配置当前所创建的镜像作为其它新创建镜像的基础镜像时,所执行的操作指令

    14、ENV:设置环境变量
    1)具有传递性,也就是当前镜像被用作其它镜像的基础镜像时,新镜像会拥有当前这个基础镜像所有的环境变量
    2)ENV定义的环境变量,可以在dockerfile被后面的所有指令(CMD除外)中使用,但不能被docker run 的命令参数引用
    ENV TZ=Asia/Shanghai
    ENV JAVA_HOME /opt/jdk
    ENV PATH P A T H : PATH:PATH:JAVA_HOME/bin

    Dockerfile内容
    #在centos上安装nginx
    FROM centos
    #标明著作人的名称和邮箱
    MAINTAINER xxx xxx@gmail.com
    #测试一下网络环境
    RUN ping -c 1 www.baidu.com
    #安装nginx必要的一些软件
    RUN yum -y install gcc make pcre-devel zlib-devel tar zlib
    #把nginx安装包复制到/usr/src/目录下
    ADD nginx-1.15.8.tar.gz /usr/src/
    #切换到/usr/src/nginx-1.15.8编译并且安装nginx
    RUN cd /usr/src/nginx-1.15.8
    && mkdir /usr/local/nginx
    && ./configure --prefix=/usr/local/nginx && make && make install
    && ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
    && nginx
    #删除安装nginx安装目录
    RUN rm -rf /usr/src/nginx-nginx-1.15.8
    #对外暴露80端口
    EXPOSE 80
    #启动nginx
    CMD [“nginx”, “-g”, “daemon off;”]

    docker build -t nginx:v1.0 .

    –build-arg=[] :设置镜像创建时的变量;
    -f :指定要使用的Dockerfile路径;
    –force-rm :设置镜像过程中删除中间容器;
    –rm :设置镜像成功后删除中间容器;
    –tag, -t: 镜像的名字及标签,通常 name:tag 或者 name 格式;

  • 相关阅读:
    maven 创建web项目出错
    poj1699--Best Sequence(dfs+剪枝)
    HDU-1042-N!(Java大法好 && HDU大数水题)
    “XXX.Index”不扩展类“System.Web.UI.Page”,因此此处不同意的问题
    scala模式匹配
    scala匿名函数
    scala特质
    group by的使用
    liux之我用过的zip解压命令
    liunx之zip格式的解压命令
  • 原文地址:https://www.cnblogs.com/jiehanshi/p/15895539.html
Copyright © 2020-2023  润新知