2020 Dockerfile常见用法

Dockerfile常用指令

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

  • FROM  基于什么镜像的
  • WORKDIR 指定接下来的shell语句是运行在哪个路径下
  • COPFY 当前宿主机上的文件拷贝到镜像中去
  1. COPY和ADD比较相似,COPY一般源地址为当前的这个文件系统的原地址;
  2. ADD 的地址不光是可以是文件系统,还可以是一个URL;
  3. 如有没有用到网络资源用COPY就可以了
  • CMD 指定我们整个镜像启动起来的时候运行的脚本
  1. 和run很像,但是run是构建的时候就运行语句脚本,CMD在容器真正运行的时候才会真正运行
  2. ENTRYPOINT和CMD也很像,但是俩如果未指定都是继承自父镜像,如果祖辈也没有知道CMD或者ENTRYPOINT,则镜像无法构建(如果ENTRYPOINT非json则以ENTRYPOINT为准,如果ENTRYPOINT和CMD都是json则ENTRYPOINT+CMD拼接成shell)

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

EXPOSE(指定当前我们的镜像所暴露出来的一个端口)

例如执行docker inspect nginx:1.13 (我们可以在里面看到配置文件ExposedPorts 80/tcp)

VOLUME /a/b(把容器中的/a/b这个目录映射到宿主机的一个目录下)

docker run 中 -p 和 -v是分别指定映射到外部的端口和目录

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

指定参数的几种方式:

ENV(可以指定当前容器的环境 变量,这是一个构建参数,只有在构建和运行时候都生效的,是系统的一个环境变量)

ARG(这是一个构建参数,只有在构建的时候才有效,真正运行的时候就无效了)

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

LABEL (主要是用来指定源数据,没有实际作用)

ONBUILD(后面可以接任意参数 如 ONBLE ENV A=10)

STOPSIGNAL (指定我们当前容器用什么样的信号名)

HEALTHCHECK(容器的健康情况)

SHELL (基于哪种SHELL; linux 一般是/bin/bash; windows 一般是CMD)

======================================================================================

 

Dockerfile用法案例

1.创建编写一个普通的Dockerfile

FROM alpine:latest 

WORD /app

COPY src/ /app #把src下的文件拷贝到app下

RUN echo 123>>1.txt  

CMD tail -f  1.txt


#cmd 一般指定为阻塞方式如tail -f脚本 到此整个生命周期就结束了
#cmd cat 1.txt(这是一个非阻塞的)

 

2.构建镜像

#构建一个名字为test镜像( .表示这个dockerfile位于当前路径下)

docker build -t test .

 

3.运行这个test镜像使其成为一个容器

docker run test

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值