Dockerfile 语法梳理及实践

## 7.1 base image  

  FROM centos 

## 7.2 Metadata信息    不可少! (类似注释)

  LABEL maintainer=“applestven@gmail.com” 

  LABEL version = "1.0" 

  LABEL description ="THis is description"

## 7.3 RUN 运行

em:  RUN yum update && yum install -y vim \

python-dev #反斜杠换行

  RUN apt-get update && apt-get install -y perl \

pwgen --no-install-recommends && rm -rf \ 

/var/lib/apt/lists/*  #注意清理cache

  RUN /bin/bash -c'source $HOME/.bashrc;echo$HOME'

注意 : 为了美观 ,复杂的RUN 请用反斜线换行 ! 

避免无用分层 ,合并多条命令成一行

## 7.4 WORKDIR /root  当前工作目录 

 em : WORKDIR  /root

  WORKDOR /test  #如果没有会自动创建test目录

  WORKDIR demo 

  RUN pwd  ​          # 输出结果应该是 /text/demo

​注意 : 用WORKDIR ,不要使用RUN cd 尽量使用绝对目录

## 7.5 ADD and COPY 

em : ADD hello /   # 添加hello 到根目录

ADD test.tar.gz / # 添加到根目录并解压 

WORKDIR /root  

ADD hello test/    ## 此时  #/root/test/hello

WORKDIR /root

COPY hello test/

注意 : 大部分情况 ,COPY 优于 ADD ! 

ADD 除了COPY 还有额外功能 (解压 )!

添加远程文件/目录请使用curl或者 wget ! 

## 7.6 ENV  环境

em:ENV MYSQL_VERSION 5.6   # 设置常量 

RUN apt-get install -y mysql-server = '${MYSQL_VERSION}' \

&& rm -rf /var/lib/apt/list/*  # 引用常量 

注意 : 尽量使用ENV增加可维护性!

## 7.7 VOLUME and EXPOSE  (存储和网络 )

## 7.8 CMD and ENTRYPOINT    

em :RUN vs CMD vs ENTRYPOINT  ( entrypoint )

  RUN :执行命令并创建 新的Image Layer 

  CMD : 设置容器启动后默认执行的命令和参数 (多条只执行最后一条 ,多条会被覆盖)

   ENTRYPOINT : 设置容器启动时运行的命令   (一定会执行) 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Dockerfile是用来定义Docker镜像的文本文件。它包含了一系列的指令,用于构建镜像的过程。根据引用\[1\]的内容,这是一个示例的Dockerfile文件,其中使用了FROM、ENV和ENTRYPOINT指令。FROM指令用于指定基础镜像,ENV指令用于设置环境变量,ENTRYPOINT指令用于指定容器启动时要执行的命令。 根据引用\[2\]的内容,构建Docker镜像的命令格式为:docker build -t \[镜像名\]:\[版本号\] \[Dockerfile所在目录\]。其中,-t参数用于指定构建后的镜像信息,\[Dockerfile所在目录\]表示Dockerfile文件所在的路径。 根据引用\[3\]的内容,示例的构建命令为:docker build -t mysoft/centos:6.6 /tmp/dockerfile/centos6。这个命令将会根据指定的Dockerfile文件在/tmp/dockerfile/centos6目录下构建一个名为mysoft/centos的镜像,版本号为6.6。 总结起来,Dockerfile是用来定义Docker镜像的文件,它包含了一系列的指令。构建Docker镜像的命令格式为docker build -t \[镜像名\]:\[版本号\] \[Dockerfile所在目录\]。 #### 引用[.reference_title] - *1* [dockerfile语法](https://blog.csdn.net/MyySophia/article/details/109491622)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Dockerfile语法](https://blog.csdn.net/u013755520/article/details/91126933)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [详解Dockerfile基本语法](https://blog.csdn.net/zhousenshan/article/details/126208642)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值