FROM 代表基于哪个镜像
RUN 安装软件使用
MAINTAINER 镜像的创建者
CMD 容器启动时执行的命令,但是一个Dockerfile中只能有一条CMD命令,多条则只执行最后一条CMD
ENTRYPOINT 容器启动时执行的命令,但是一个Dockerfile中只能有一条CMD命令,多条则只执行最后一条
USER 使用哪个用户运行container
EXPOSE 容器内部服务暴露的端口,主机上还需要在run容器时,做端口映射:
ENV 用来设置环境变量
ADD 将主机上的文件拷贝到container内的对应路径,所有拷贝到容器中的文件和文件夹权限为0755,uid和gid为0,
如果文件是可识别的压缩格式,则docker会帮忙解压缩,ADD只有在build镜像的时候运行一次,后面运行container的时候不会再重新加载了。
VOLUME 可以将本地文件夹或者其他容器的文件夹挂在到容器内。
WORKDIR 切换目录使用,(相当于cd目录)
ONBUILD 指定的命令在构建镜像时不执行,而是在它的子镜像中执行。
dockerfile:
FROM java:8
VOLUME /tmp
ADD docker-demo-0.0.1-SNAPSHOT.jar app.jar
RUN bash -c 'touch /app.jar'
EXPOSE 9000
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","app.jar"]
docker-compose.yaml
version: '2' # 表示该 Docker-Compose 文件使用的是 Version 2 file
services:
docker-demo: # 指定服务名称
build: . # 指定 Dockerfile 所在路径
ports: # 指定端口映射
- "9000:8761"
docker-compose up
docker-compose up -d // 后台启动并运行容器