1、把要部署的功能打成jar
工程目录结构
pom文件
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.1.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.oy</groupId> <artifactId>test_docker</artifactId> <version>0.0.1-SNAPSHOT</version> <name>test_docker</name> <description>test_docker project for Spring Boot</description> <properties> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <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> <exclusions> <exclusion> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> </exclusion> </exclusions> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
IndexController.java
/** * @author oy * @version 1.0 * @date 2019年11月11日 * @time 上午2:18:09 */ @Controller public class IndexController { @RequestMapping("test") public String test() { return "test"; } }
clean install -DskipTests将工程打成jar包,改名为test_docker.jar。
将test_docker.jar上传到linux的指定目录, 比如/root/mydocker/test_docker。
2、准备工作
docker pull mcr.microsoft.com/java/jdk:8u192-zulu-alpine
3、编写Dockerfile
FROM mcr.microsoft.com/java/jdk:8u192-zulu-alpine MAINTAINER oy COPY test_docker.jar /usr/local/app.jar # 执行java -jar命令(CMD:在启动容器时才执行此行。RUN:构建镜像时就执行此行) CMD java -jar /usr/local/app.jar # 设置对外端口为8089 EXPOSE 8080
4、docker build
docker build -f /root/mydocker/test_docker/Dockerfile -t oy/test_docker:1.1 .
5、docker run
docker run -it -p 8080:8080 oy/test_docker:1.1
6、访问
参考 https://blog.csdn.net/jiangyu1013/article/details/81988342