1.pom配置

首先,springboot工程搭建就不提, 需要注意的是pom文件需要加入这些配置(这些配置是你用插件来build才用得上的,如果你在构建dockerfile的时候,手动将使用命令mvn package -Dmaven.test.skip=true构建的,dockfile使用copy的则不需要关心这个,我就是这样…)

<properties>
	<docker.image.prefix>springboot</docker.image.prefix>
</properties>

在build里搞点事情

<build>
	<plugins>
		<plugin>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-maven-plugin</artifactId>
		</plugin>
		<!-- Docker maven plugin -->
		<plugin>
			<groupId>com.spotify</groupId>
			<artifactId>docker-maven-plugin</artifactId>
			<version>1.0.0</version>
			<configuration>
				<imageName>${docker.image.prefix}/${project.artifactId}</imageName>
				<!-- Dockerfile在哪里 -->
				<dockerDirectory>src/main/docker</dockerDirectory>
				<resources>
					<resource>
						<targetPath>/</targetPath>
						<directory>${project.build.directory}</directory>
						<include>${project.build.finalName}.jar</include>
					</resource>
				</resources>
			</configuration>
		</plugin>
		<!-- Docker maven plugin -->
	</plugins>
</build>

虚拟机docker开放远程访问

从其他地方拷贝过来的,能用(我用的是centos7)

[root@local host ~]# vi /lib/systemd/system/docker.service
#修改ExecStart这行
ExecStart=/usr/bin/dockerd  -H tcp://0.0.0.0:2376  -H unix:///var/run/docker.sock

检查下是否能链接上虚拟机的docker,使用systemctl start docker启动docker,然后在idea查看是否能链接上…

disconf springboot docker集成 springboot docker插件_docker


不行的话,Google解决方案

配置docker发布

首选弄一份dockerfile文件,我是放到根目录的,如果使用pom配置的docker插件需要注意dockfile的路径

#指定基础镜像,在其上进行定制
FROM java:8

#这里的 /tmp 目录就会在运行时自动挂载为匿名卷,任何向 /data 中写入的信息都不会记录进容器存储层
VOLUME /tmp

#复制上下文目录下的target/oohadshowmi.jar 到容器里
COPY target/oohadshowmi.jar test.jar

#bash方式执行,使test.jar可访问
#RUN新建立一层,在其上执行这些命令,执行结束后, commit 这一层的修改,构成新的镜像。
RUN bash -c "touch /test.jar"

#声明运行时容器提供服务端口,这只是一个声明,在运行时并不会因为这个声明应用就会开启这个端口的服务
EXPOSE 8989

#指定容器启动程序及参数   <ENTRYPOINT> "<CMD>"
ENTRYPOINT ["java","-jar","test.jar"]

使用idea发布到docker(如果旧版本的idea 可能需要按照docker插件)

disconf springboot docker集成 springboot docker插件_jar_02


图片发复制过来的,但是命令哪里需要改一下, -itd 不少 -t, 不然容易出现docker的端口没有映射到虚拟机的情况,(其他人怎么就没发生这情况呢=–=)

我是看了这篇博文解决了端口问题 Docker端口映射不起作用的解决办法因为我的dockerfile写的简单,所以需要自己build, 使用mvn package -Dmaven.test.skip=true来build一个jar包,

然后发布到docker

disconf springboot docker集成 springboot docker插件_jar_03


如果下载镜像很慢的话, 你可能需要考虑下切换源:

参考过资料:
Idea发布项目到DockerSpring Boot 2 (四):使用 Docker 部署 Spring BootDocker端口映射不起作用的解决办法