• dockerfile使用


    保留字                            作用
    FROM                        当前镜像是基于的哪个镜像   第一个指令必须是FROM
    MAINTAINER               镜像维护者的姓名和邮箱地址  # 禁用了目前
    RUN                          构建镜像时需要运行的指令
    EXPOSE                    当前容器对外暴露出的端口号
    WORKDIR                  指定在创建容器后,终端默认登录进来的工作目录,一个落脚点
    ENV                          用来在构建镜像过程中设置环境变量
    ADD                          将宿主机目录下的文件拷贝进镜像且ADD命令会自动处理URL和解压tar包
    COPY                        类似ADD,拷贝文件和目录到镜像中
    VOLUME                    容器数据卷,用于数据保存和持久化工作
    CMD                          指定一个容器启动时要运行的命令
    ENTRYPOINT              指定一个容器启动时要运行的命令
    

    简单示例

    # vim Dockerfile
    FROM centos:7     # 基于哪个镜像来构建
    RUN yum install -y vim   # 运行的指令安装vim
    WORKDIR  /data
    WORKDIR   bb     # WORKDIR可以写多次,bb是基于上面一层下构建
    COPY  aa.txt  /data/bb    #拷贝目录,源目录到目标目录
    ADD https://archive.apache.org/dist/tomcat/tomcat-8/v8.5.15/bin/apache-tomcat-8.5.15.tar.gz  /data/bb    # 可以添加远程下载包,但是不会自动解压
    
    # 构建
    docker build -t mycentos7:01 .        .表示当前目录 
    

    示例

    FROM openjdk:8-jre    #基于哪个镜像进行构建
    WORKDIR /app    #定义进入容器时默认位置,接下来后续操作工作位置
    ADD demo-0.0.1-SHAPSHOP.jar app.jar   # 添加一个jar包并重命名为app.jar
    EXPOSE 8081     #暴露一个8081端口  为了后面可以映射
    ENTRYPOINT  ['java', '-jar']    #启动时 这个是不变的 所以用ENTRYPOINT写死
    CMD ["app.jar"]   # 这个写可以改变的
    
    两者区别:当docker run启动时,后面没有跟参数,那么CMD就可以作为默认参数执行命令,如果docker run后面有参数,那么CMD将被替换掉不执行。
    当docker run启动时,后面没有跟参数,ENTRYPOINT会被执行,当docker run后面有参数时,ENTRYPOINT先执行,然后再执行docker run的参数,也就是说ENTRYPOINT不会被忽略,一定会被执行。当docker run 没有参数时,ENTRYPOINT和CMD都有参数,那么会先执行ENTRYPOINT的参数,CMD则作为默认参数跟其后执行。
    
    
    # 执行构建
    docker build -t demo:01
    
    # 运行容器
    docker run -d -p 8081:8081  --name demo  demo:01 
    

    -------------------------------------------

    个性签名:代码过万,键盘敲烂!!!

    如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!

  • 相关阅读:
    伟东云学堂—几何画板学习
    京北鲤鱼----创客教育
    几何画板学习网站
    快乐的搬运工
    少儿编程网
    科技学堂 Arduino轻松学
    跟张老师学硬件arduino板
    科技学堂 Arduino传感器入门
    巧办网
    项目:git+gitlab+jenkins+ansible上线网站
  • 原文地址:https://www.cnblogs.com/weiweivip666/p/14510127.html
Copyright © 2020-2023  润新知