Docker 部署简单Springboot 项目
Docker 环境部署参照:https://www.cnblogs.com/oneMr/p/14200760.html
简单 Springboot 项目
新建一个 Springboot 项目,写一个简单的Controller
@RestController public class HelloController { @RequestMapping("/") public String hello() { return "Hello Docker"; } }
在 pom 文件中添加 Docker 镜像名称
<properties> <java.version>1.8</java.version> <docker.image.prefix>docker</docker.image.prefix> </properties>
plugins 中添加 Docker 构建插件:
<build> <plugins> <!--Docker 插件--> <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> <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>
在 src/main/docker 下创建 Dockerfile 文件(无后缀名),地址即为插件中的 <dockerDirectory>
Dockerfile 文件内容(ADD 后对应自己的 jar 包名称,如果docker容器内没有 java:8,第一次会下载Java:8):
# 添加 Java 8 镜像来源 FROM java:8 VOLUME /tmp # 添加 Spring Boot 包 ADD docker-1.0.jar /app.jar # 执行启动命令 ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
完成后打包项目
使用 Docker 部署 Spring Boot 项目
将 jar 包和 Dockerfile 上传到服务器的同一个文件夹下
文件下载:https://cloud.189.cn/t/bUvQfm7b2iUj
进入文件目录,输入命令构建镜像(helloworld 为镜像名,注意后面有个点表示当前目录)
docker build -t helloworld .
查看镜像:
docker images
运行镜像(注意容器的时区问题:-e "TZ=Asia/Shanghai"):
docker run -d -p 8081:8080 -e "TZ=Asia/Shanghai" --name helloworld helloworld
查看正在运行的镜像:
docker ps
访问地址 ip:8081/