1、添加maven配置java
<properties> <docker.image.prefix>ms4t</docker.image.prefix> </properties> <build> <finalName>eureka</finalName> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <plugin> <groupId>com.spotify</groupId> <artifactId>dockerfile-maven-plugin</artifactId> <version>1.3.6</version> <configuration> <repository>${docker.image.prefix}/${project.artifactId}</repository> <buildArgs> <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE> </buildArgs> </configuration> </plugin> </plugins> </build>
2、建立Dockerfilespring
FROM openjdk:8-jdk-alpine VOLUME /tmp ARG JAR_FILE COPY ${JAR_FILE} app.jar ENTRYPOINT ["java","-jar","/app.jar"]
参数讲解:docker
FROM <image>:<tag> 须要一个基础镜像,能够是公共的或者私有的。app
后续构建会基于此镜像,若是同一个Dockerfile中创建多个镜像时,能够使用多个FROM指令maven
VOLUME 配置一个具备持久化功能的目录,主机 /var/lib/docker 目录下建立了一个临时文件,并连接到容器的/tmp。改步骤是可选的,若是涉及到文件系统的应用就颇有必要了spring-boot
。/tmp目录用来持久化到 Docker 数据文件夹,由于Spring Boot 使用的内嵌 Tomcat 容器默认使用 /tmp 做为工做目录ui
ARG 设置编译镜像时加入的参数, ENV 是设置容器的环境变量spa
COPY:只支持将本地文件复制到容器,还有个ADD更强大但复杂点code
ENTRYPOINT 容器启动时执行的命令blog
EXPOSE 8080 暴露的镜像端口
3、构建
mvn install dockerfile:build
4、启动
docker run -d --name 名称 -p 对外端口:容器端口 镜像ID