首页 > 网络 > 云计算 > 正文
Dockerfile的编写
2017-04-27       个评论    来源:weixin_36768529的博客  
收藏    我要投稿

Dockerfile的编写。Dockerfile由一行行命令语句构成,并 以 # 开头注释行。一般包括四部分:基础镜像信息、维护者信息、镜像操作指令和容器启动时执行指令。

基础镜像信息:FROM ubuntu:l14.04

维护者信息: MAINTAINER docker_user

镜像操作指令: RUN mkdir /mnt/temp

容器启动时执行指令: CMD /bin/bash

1.FROM (基于原有的镜像,在此基础上安装配置相关软件)

格式: FROM image_name 或者是 FROM image_name:tag
例如: FROM ubuntu:14.04
注:Dockerfile的第一行命令必须为FROM命令。
 

2.MAINTAINER(指定维护者信息)

格式:  MAINTAINER name
例如:  MAINTAINER john

3.RUN

格式: RUN commad 或者是 RUN ["executable","param1","param2"]
例如: RUN mkdir /mnt/cosfs   或者  RUN ["/bin/bash","-c","mkdir /mnt/cosfs"]
前者将在shell终端中运行命令,即/bin/sh -c; 后者则使用exec执行
每一条RUN命令都是在当前镜像基础上执行的,并提交为新的镜像。

4.CMD

支持三种格式
格式: 1.  CMD ["executable","param1","param2"]使用exec执行;
       2.  CMD command param1 param2 在/bin/bash中执行;
       3.  CMD ["param1","param2"]提供给ENTRYPOINT的默认参数;
指定启动容器时执行的命令,每个Dockerfile只能有一条CMD命令。如果指定了多条命令,只能最后一条会被执行。
如果用户启动容器时指定了运行的命令,则会覆盖掉 CMD 指定的命令。

5.EXPOSE

格式: EXPOSE port [port  ...]
例如: EXPOSE 53 80 8443
主要是暴露容器的端口号,在启动容器时需要通过 -P,Docker主机会自动分配一个端口转发到指定的端口;使用 -p,则可以具体指定哪个本地端口映射过来
。

6.ENV

格式: ENV key  value
例如: ENV http_proxy http://192.168.205.21:3128
主要是指定一个环境变量,会被后续RUN指令使用,并在容器运行时保持。

7.ADD

格式: ADD src  dest
例如: ADD cosfs /mnt/cosfs
该命令是将docker本地的文件或目录src复制到容器中的位置dest,也可以是一个URL或者是一个tar文件。

8.COPY

格式: COPY src  dest
例如: COPY cosfs /mnt/cosfs
复制本地主机的src(文件或者目录)为容器中的dest。如果目标路径不存在,会自动创建。

9.ENTRYPOINT

有两种格式:
格式:1.  ENTRYPOINT ["executable","param1","param2"]
      2.  ENTRYPOINT command param1 param2
例如: ENV ["/usr/sbin/python","temp.py"]
配置容器启动后执行的命令,ingredients且不可被docker run 提供的参数覆盖。
每个Dockerfile中只能有一个ENTRYPOINT,当指定多个ENTRYPOINT时,只有最后一个生效。

10.VOLUME

格式: VOLUME  ["directory"]
例如: VOLUME  ["/data"]
创建一个可以从本地主机或其他容器挂载的挂载点,一般用来存放数据库和需要保持的数据等。

11.WORKDIR

格式: WORKDIR  /path/to/workdir
例如: WORKDIR  /var/www/html
为后续的RUN、CMD、ENTRYPOINT指令配置工作目录。
可以使用多个WORKDIR指令,后续命令如果参数是相对路径,则会基于之前命令指定的路径。

点击复制链接 与好友分享!回本站首页
上一篇:hadoopha故障问题处理
下一篇:如何在Ubuntu14.04上利用HAProxy实现SSL终端
相关文章
图文推荐
文章
推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做实用的IT技术学习网站