dockerfile语法(一)
FROM
- FROM scratch 制作base image
- FROM centos 使用base image
- FROM ubuntu:14.04 使用base image 指定版本
LABEL
- LABEL maintainer="wangkaijin@gmail.com"
- LABEL version="1.0"
- LABEL description="This is description"
RUN
- 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请用反斜线换行!避免无用分层,合并多条命令成一行!
WORKDIR
WORKDIR /root
WORKDIR /test # 如果没有会自动创建test目录
WORKDIR demo
RUN pwd # 输出结果应该是 /test/demo
用WORKDIR,不要用 RUN cd! 尽量使用绝对目录!
ADD and COPY
- ADD hello / 将hello添加到Image的根目录中
- ADD test.tar.gz / 添加到根目录并解压
- WORKDIR /root
ADD hello test/
或者
WORDIR /root
COPY hello test/ 将hello添加到 /root/test/hello
大部分情况,COPY优于ADD! ADD除了COPY还有额外功能(解压)!添加远程文件/目录请使用curl或者wget!
ENV
ENV MYSQL_VERSION 5.6 #设置常量
RUN apt-get install -y mysql-server="${MYSQL_VERSION}" \
&& rm -rf /var/lib/apt/lists/* #引用常量
EXPOSE
EXPOSE 5000 暴露5000端口