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 // 后台启动并运行容器