记录编写DockerFile常用的一些指令

1.FROM(最开始的语法 定制基本的镜像)

1.FORM scrath 制作base image

2.FROM centos base image

3.FROM ubantu

2.RUN (运行指令)

1.shell格式 :命令行模式,等同于在终端输入命令
格式RUN (shell form, the command is run in a shell, which by default is /bin/sh -c on Linux or cmd /S /C on Windows)

2.exec 模式:可执行文件
格式RUN [“executable”, “param1”, “param2”] (exec form)

为了美观,复杂的RUN请用反斜线换行!避免无用分层,合并多条命令成一行!

3.WORKDIR(设置当前目录)

案例:

  WORKDIR 
   WORKDIR/ROOT
  
   WORKDIR /test
  
   WORKDIR demo  
  
   RUN pwd      # 输出/test/demo
  
4.ADD and COPY ( 主机资源添加到镜像中 ,解压缩等)

1.案例

ADD test.tar.gz / 添加到根目录解压
WORKDIR /root
ADD hello  test   #/ root/test/hello

大部分情况,COPY优于ADD! ADD除了COPY还有额外功能(解压!)添加远程文件/目录请使用curl或者wget!

4.ENV 定义环境变量

格式:key value or key=value

1.案例

.ENV name lailai
RUN mkdir  $env
  1. 通过ENV定义的环境变量,可以在dockerfile被后面的所有指令中使用 $变量
  2. 启动容器后,在容器实例中,可以通过env命令查看环境变量
  3. 在docker run 命令中通过-e标记来传递环境变量,这样容器运行时就可以使用该变量
5.VOLUME EXPOSE

VOLUME 挂载数据卷

格式:VOLUME ["<路径1>", “<路径2>”…]
VOLUME <路径>

1.避免重要数据因为容器重启而丢失
2.避免容器越来越大

在启动容器 docker run 的时候,我们可以通过 -v 参数修改挂载点。

EXPOSE 端口声明

6.CMD ENTRYPOINT

CMD

  1. CMD 容器启动时默认的执行命令
  2. 如果docker run 指定了其他 cmd被忽略
  3. 如果定义了多个 执行最后一个
  4. 同run 功能一样,但是运行时间不同 RUN是在docker build运行 CMD是在docker run 运行
    案例:
CMD echo  'hello docker '

ENTRYPOINT
格式:
ENTRYPOINT ["","","",…]

  1. 让容器以应用程序或者服务的形式运行
  2. 不会被忽略一定会执行
  3. 同CMD一样也是指令 但是不会被run运行时的指令所取代,除非!docker run --entrypoint 将会覆盖ENTRYPOINT
  4. 4.可以搭配 CMD 命令使用:一般是变参才会使用 CMD ,这里的 CMD 等于是在给 ENTRYPOINT 传参,以下示例会提到。

示例:

FROM nginx

ENTRYPOINT ["nginx", "-c"] # 定参
CMD ["/etc/nginx/nginx.conf"] # 变参 

1.不传参

$ docker run nginx:test
脚本指令:
nginx -c /etc/nginx/nginx.conf

2.传参

$ docker run nginx:test -c /etc/nginx/new.conf
脚本指令:
nginx -c /etc/nginx/new.conf

COPY docker-entyr.sh /usr/local/bin
ENTRYPOINT ['docker-entrypoint.sh']
ENTRYPOINT ['java -jar' ' xxx' ]
7.LABEL (描述信息:作者,版本等)

1.LABEL maintainer='lailai@com’

2.LABLE version='1.0’

3.LABEL description ='这是描述’

LEBEL/Metadata 不可少!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值