Dockerfile主要有如下指令:
- FROM指令:指明了当前镜像继承的基镜像。编译当前镜像时会自动下载基镜像。示例:
FROM ubuntu
- MAINTAINER指令:指明了当前镜像的作者。示例:
MAINTAINER xiaobai
- RUN指令:可以在当前镜像上执行linux命令并形成一个新的层。RUN是编译(build)时的动作。示例有两种格式,CMD和ENTRYPOINT也是如此:
RUN /bin/bash -c "echo helloworld"
- 或
RUN ["/bin/bash", "-c", "echo helloworld"]
- CMD指令:指明了启动镜像容器时的默认行为。一个Dockerfile里只能有一个CMD指令。CMD指令里设定的命令可以在运行镜像时使用参数覆盖。CMD是运行时(run)的动作。示例:
CMD echo "this is a test"
- EXPOSE指令:指明了镜像运行时的容器必须监听指定的端口。示例:
EXPOSE 8080
- ENV指令:可用来设置环境变量。示例:
EVN myName=xiaobai 或 EVN myName xiaobai
- ADD指令:是指从当前工作目录复制文件到镜像目录中去。示例:
ADD test.txt /mydir/
- ENTRYPOINT指令:可让容器像一个可执行程序一样运行,这样镜像运行时可以像软件一样接收参数执行。ENTRYPOINT是运行时(run)的动作。示例:
ENTRYPOINT ["/bin/echo"]