社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
使用idea创建springboot项目
项目地址: springboot-docker-demo
创建好之后,在pom.xml中添加docker的build工具
这里需要服务器docker开通远程访问端口(下面有开通方法),用于项目docker镜像的打包上传
dockerHost docker服务器地址
imageName 镜像名称+版本号
<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>
<!-- docker私服的地址 -->
<dockerHost>http://192.168.112.135:2375</dockerHost>
<!--镜像名称以及版本号-->
<imageName>demo:1.0.0</imageName>
<!-- 若需要重复构建相同标签名称的镜像,可将 forceTags 设置为 true -->
<forceTags>true</forceTags>
<!--Dockerfile的位置 -->
<dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>
<!-- 这里是复制 jar 包到 docker 容器指定目录配置 -->
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
<!-- Docker maven plugin -->
</plugins>
</build>
接下来在项目的 src/java/main 目录下创建 docker/Dockerfile 结构如下
Dockerfile文件内容为
# 父镜像
FROM lion_li/jdk:8
MAINTAINER Lion Li
VOLUME /root
# 添加jar包到容器并重命名
ADD docker-demo-0.0.1-SNAPSHOT.jar demo.jar
RUN bash -c 'touch /demo.jar'
# 同步容器与本机时间
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
&& echo 'Asia/Shanghai' >/etc/timezone
# 使用端口
EXPOSE 8080
ENV JAVA_OPTS="-Xms256m -Xmx256m"
# -Djava.security.egd=file:/dev/./urandom 加速tomcat启动
# -Dspring.profiles.active=prod 指定spring运行环境,不用可以删除
ENTRYPOINT ["sh","-c","java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -Dspring.profiles.active=prod -jar /demo.jar"]
lion_li/jdk:8 该镜像为本人搭建的oracle jdk镜像 也可以使用 openjdk镜像 java:8
如需oracle jdk镜像请参考本人的另一篇文章: docker 搭建 oracle jdk(版本可更换) 镜像
使用maven打包工具打包
使用docker工具构建镜像并上传服务器
此操作需要服务器docker开通远程访问端口
可以参考本人的另一篇文章: docker 开启端口 2375 供外部程序访问
查看镜像
docker images
上传成功
再次执行,docker会把名称赋值给我们较新的镜像,原先较旧的镜像也不会覆盖,而是会变为一个无名镜像
将无名镜像删除即可
可以参考我的另一篇文章: docker 删除 容器/镜像 方法
创建容器
docker run -d --name demo -p 8080:8080 -t demo:1.0.0
查看所有容器
docker ps -a
创建成功,运行容器
docker start demo
docker logs -f -t --tail 行数 容器名
docker logs -f -t --tail 50 demo
访问insert接口
访问查询接口
测试成功
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!