FROM
==尽量使用官方的Image作为base Image (安全)==
LABEL: metadata 帮助信息,类似注释
1
| LABEL maintainer="yefan813@gmail.com"
|
1
| LABEL description="this is description"
|
RUN: 运行命令,运行后会生成新的layer,尽量将命令写成一行
1 2
| RUN yum update && yum install -y vim \ python-dev
|
1
| RUN /bin/bash -c 'source $HOME/.bashrc;echo $HOME'
|
WORKDIR: 类似 Linux 中 cd
1 2 3
| WORKDIR /test WORKDIR demo RUN pwd
|
==用 WORKDIR 不要用 RUN cd,尽量使用绝对目录==
ADD and COPY:将文件添加到制定目录下,add 有解压的作用
1
| ADD test.tar.gz / ##添加到根目录并解压
|
1 2
| WORKDIR /root ADD hello test/ ##/root/test/hello
|
1 2
| WORKDIR /root COPY hello test/
|
==大部分情况,copy 优于 ADD,添加远程文件、目录使用 curl 或者 wget==
ENV: 设定环境变量、常量
1 2 3
| ENV MYSQL_VERSION 5.6 RUN apt-get install-y mysql-server="${MYSQL_VERSION}" \ && rm -rf /var/lib.apt/lists/*
|
==尽量使用 ENV 增加可维护性==
VOLUME and EXPOSE: 存储(将 docker 数据存储到宿主机)和网络
CMD and ENTRYPOINT:
1 2 3
| RUN:执行命令并创建新的 Image Layer CMD:设置容器 ‘启动后’ 的默认执行命令和参数 ENTRYPOINT:设置容器‘启动时’运行的命令
|
==语法可以参考官方,
github地址==