1、创建SpringBoot项目 hello_docker
1.1、项目结构
1.2、项目所有代码
- pom.xml
4.0.0
com.liuchao
hello_docker
1.0-SNAPSHOT
hello_docker
org.springframework.boot
spring-boot-starter-parent
2.7.0
UTF-8
1.8
1.8
2021.1
com.alibaba.cloud
spring-cloud-alibaba-dependencies
${spring-cloud-alibaba.version}
pom
import
org.springframework.boot
spring-boot-starter
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-maven-plugin
org.apache.maven.plugins
maven-deploy-plugin
true
- application.yml
## 激活对应的profile
spring:
profiles:
active: local
application:
name: hello_docker
- TestController
package com.liuchao.liuchao.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author liuchao
* @date 2022/12/13
*/
@RestController
@RequestMapping("/test")
public class TestController {
@RequestMapping("/test01")
public String test01() {
return "01";
}
}
- DockerApplication
package com.liuchao.liuchao;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* @author liuchao
* @date 2022/12/13
*/
@SpringBootApplication
public class DockerApplication {
public static void main(String[] args) {
SpringApplication.run(DockerApplication.class, args);
}
}
2、编写Dockerfile文件
Dockerfile中几个点
- 自动安装jdk1.8
- 将hello_word项目生成的jar上传至容器
- 启动hello_word.jar
- 暴露端口 我这块用的端口是6001,即暴露6001端口
Dockerfile内容
基础镜像使用java
FROM java:8
作者
MAINTAINER liuchao
VOLUME 指定临时文件目录为/tmp,在主机/var/lib/docker目录下创建了一个临时文件并链接到容器的/tmp
VOLUME /tmp
将jar包添加到容器中并更名为hello_docker.jar
ADD hello_docker-1.0-SNAPSHOT.jar hello_docker.jar
运行jar包
RUN bash -c 'touch /hello_docker.jar'
ENTRYPOINT ["java","-jar","/hello_docker.jar"]
#暴露6001端口作为微服务
EXPOSE 6001
3、构建镜像
4、创建并运行容器
命令:docker run -d -p 6001:6001 hello_docker:1.0
5、访问测试
至此Docker 打包SpringBoot项目为镜像,创建并运行容器成功
Original: https://blog.csdn.net/u011837804/article/details/128331817
Author: 指尖@旋律
Title: 十四、Docker 微服务实战
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/804203/
转载文章受原作者版权保护。转载请注明原作者出处!