1. FROM
作用:指定基础镜像
使用:FROM 镜像名
demo:
FROM mysql
FROM mysql:5.6
2. RUN
作用:指令是用来执行命令行命令的
使用:
shell格式:RUN命令,就跟直接在命令行输入命令一样
demo:RUN echo '<h1>Hello, Docker!</h1>' > /usr/share/nginx/html/index.html
exec格式:RUN ['可执行文件', '参数1', '参数二']
3. MAINTAINER
作用:维护者的信息
使用:MAINTAINER <name>
demo:MAINTAINER 萌新瑟瑟发动
4. ADD
作用:将本地文件添加到容器中 压缩包类型的文件会自动解压(网络文件不会解压),可以访问网络
使用:ADD 本地文件 虚拟机路径
5. COPY
作用:功能类似ADD 但是不能解压和访问网络资源
使用:COPY 本地文件 虚拟机路径
6. CMD
作用:构建容器后调用,也就是在容器启动的时候才进行调用
使用:
CMD ['executable', 'param1', 'param2'] # 执行可执行的软件 优先
CMD ['param1', 'param2'] # 设置ENTPYPOINT,直接调用 ENTPYPOINT语法 + 参数
CMD command parm1, parm2 # 执行shell 内部命令
注意:
CMD 指定容器启动时执行的命令
RUN 指定镜像构建所执行的命令
7. ENV
作用:设置环境变量
使用:
ENV <key> <value> # <key>之后所有的部分都会被当成value的一部分
ENV <key>=<value> # 可以设置多个变量每个变量为一个key=value的键值对,若其中<key>包含空格可以使用\ 进行转译。 也可以使用'' 标志,另外 \ 可以用于换行
8. EXPOSE
作用:指定外界交互端口
使用:EXPOSE <port> <port> # 主机端口/tcp 虚拟机端口/tcp 注: /tcp 可选
9. VOLUME
作用:用于指定持久化目录
使用:
VOLUME ["/var/www", "/var/log/apache2", "/etc/apache2"]
注:一个卷可以存在于一个或多个容器的指定目录,该目录可以绕过联合文件系统,并具有以下功能:
1、卷可以容器间共享和重用
2、容器并不一定要和其它容器共享卷
3、修改卷后会立即生效
4、对卷的修改不会对镜像产生影响
5、卷会一直存在,直到没有任何容器在使用它
10. WORKDIR
作用:工作路径,类似linux命令的 cd
使用:WORKDIR <path>
注意:通过WORKDIR设置工作目录后,在Dockerfile 其后的命令RUN、CMD等命令就在此目录下执行。在使用docker run 运行容器时,可以通过 - w 参数覆盖构建时所设置的工作目录
11. USER
作用:指定运行容器时的用户名或 UID,后续的 RUN 也会使用指定用户。使用USER指定用户时,可以使用用户名、UID或GID,或是两者的组合。当服务不需要管理员权限时,可以通过该命令指定运行用户。并且可以在之前创建所需要的用户
使用:
USER user
USER user:group
USER uid
USER uid:gid
USER user:gid
USER uid:group
12. ARG
作用:用于指定传递给构建运行时的变量
使用:ARG <name>[==<default value>]