dockerfile编写及docker build语法

dockerfile是一个文本文件,其中包含了若干指令,指令描述了构建镜像的细节

dockerfile通过文件的形式来生成镜像

先把操作系统的镜像做出来,其他的依赖操作系统的镜像来做叫做镜像的分层

或者 apt-get upgrade | 'bin/echo' -e "\ny\n"

如果有[y,d,N]出现可以直接加 -y即可跳过

脚本的话

比如我们用sh Anaconda3-4.4.0-Linux-x86_64.sh来安装anaconda的时anaconda会问四个问题,我的回答顺序分别是Enter,yes,Enter,yes。于是你可以这样写:

RUN sh -c '/bin/echo -e "\nyes\n\nyes" | sh Anaconda3-4.4.0-Linux-x86_64.sh'

Dockerfile常用指令

1、FROM 依赖的基础镜像文件,必须是第一条指令

2、MAINTAINER wwn 作者

3、RUN 构建镜像过程中执行linux命令 写多个run不如写在一行里,会节省空间

4、ADD 添加文件,从src目录复制文件到容器的dest,其中src可以是dockerfile所在目录的相对路径,也可以是url,还可以是一个压缩包(自动解压)宿主机的文件复制到容器路径里去

5、COPY 拷贝文件,但不支持url和压缩包解压

6、EXPOSE 声明容器在运行时对外提供的服务端口,就是可以暴露出的端口号

7、WORKDIR 指定容器的工作目录

8、ENV 添加环境变量可添加多行,容器启动后生成的环境变量

9、ARG 在镜像构建过程中生成的环境变量,一旦镜像构建成功,环境变量失效

10、USER 指定容器的启动用户

11、VOLUME 指定挂载点,使容器中一个目录具有持久化的功能,可以被自身使用也可以给别人用,通常不会用

12、CMD 容器启动后执行的命令,可以指定多次但只有最后一次有效,如果cmd和entrpoint同时出现,cmd会成为entrypoint的参数

13、ENTRYPOINT:容器启动后执行的命令,可以指定多次但只有最后一次有效

 docker bulid

docker build -t "www.wangwennuo.com/system/centos7:v1" (指定名称) .

  • --build-arg=[] :

设置镜像创建时的变量;

  • --cpu-shares :

设置 cpu 使用权重;

  • --cpu-period :

限制 CPU CFS周期; 限制 CPU CFS配额; 指定使用的CPU id;

--cpu-quota --cpuset-cpus : --cpuset-mems :

指定使用的内存 id;

  • --disable-content-trust :

忽略校验,默认开启;

  • -f :

指定要使用的Dockerfile路径;

  • --force-rm :

设置镜像过程中删除中间容器;

  • --isolation :

使用容器隔离技术;

  • --label=[] :

设置镜像使用的元数据;

  • -m :

设置内存最大值;

  • --memory-swap :

设置Swap的最大值为内存+swap,"-1"表示不限swap;

  • --no-cache :

创建镜像的过程不使用缓存;

  • --pull :

尝试去更新镜像的新版本;

  • --quiet, -q :

安静模式,成功后只输出镜像 ID;

  • --rm :

设置镜像成功后删除中间容器;

  • --shm-size :

设置/dev/shm的大小,默认值是64M;

  • --ulimit :

Ulimit配置。

  • --squash :

将 Dockerfile 中所有的操作压缩为一层。

  • --tag, -t:

 镜像的名字及标签,通常 name:tag 或者 name 格式;可以在一次构建中为一个镜像设置多个标签。

  • --network:

 默认 default。在构建期间设置RUN指令的网络模式

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值