首先我们用idea 创建一个简单的springboot 项目,只需要加入web核心的依赖就行
下面是pom 文件要加入的内容
<properties>
<docker.image.prefix>xiezihao</docker.image.prefix>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.4.2</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</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>
docker.image.prefix 就是你打包完成后的镜像前缀。
接下去在项目的根目录下新建一个Dockerfile
文件
,输入如下内容
FROM openjdk:8-jdk-alpine
VOLUME /tmp
ARG JAR_FILE
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
打开cmd,进入到项目的根目录下
执行
mvn install dockerfile:build --settings D:\code\maven\apache-maven-3.5.0\conf\settingstaotao.xml
settings 后面是你指定的maven 配置文件的目录
运行后,将会打包成images
使用docker images
可以看到我们刚刚打包好的images
如下
REPOSITORY TAG IMAGE ID CREATED SIZE
xiezihao/dockerdemo latest 5cbacc1f72aa 8 minutes ago 103MB
然后我们利用这个images 运行一下
docker run -d -p 7777:8080 --name demodocker 5cbacc1f72aa
之后我们利用
docker logs -f demodocker
可以看下启动的日志,如果启动没有问题,那么我们可以在
docker ps 中看到我们的容器,这个时候说明我们打包的iamge 是没有问题的。
我们可以利用
docker exec -it b5c6d7064c08 /bin/sh
或者
docker exec -it b5c6d7064c08 /bin/bash
进入我们的容器中