一个SpringBoot测试项目:
依赖只有web模块:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
只有一个controller用来接收请求:
@RestController
public class HelloController {
@GetMapping("/")
public String hello(){
return "<h1>hello</h1>";
}
}
把项目打包:
打包完成后,会在target目录下生成一个jar包:
把生成的jar放到桌面,为了方便,这里把这个jar包改名为hello.jar。
普通的启动项目是使用java -jar hello.jar
命令。
然后通过本机的ip加端口号
就可以访问了(192.168.0.106是我mac电脑的IP地址),停止项目可以使用control+c
快捷键来停止项目的运行。(不过使用这条命令可能会有其他一些问题(例如环境的版本问题,不兼容等等),所以接下来,我们就所有docker来部署)
在桌面新建一个名为Dockerfile的文件。(没有后缀名的,可以先创建一个Dockerfile.txt文件,编写完后,再把.txt后缀去掉)
编写Dockerfile文件
FROM java:8
VOLUME /tmp
ADD hello.jar /hello.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/hello.jar"]
然后先连接服务器。(我这里连接了本机的虚拟机linux系统,linux里已经下载了docker)
我的是mac系统,所有可以在终端使用scp命令把mac电脑上的文件复制到linux中。
cd /Users/pro/Desktop/
scp -r hello.jar Dockerfile root@10.211.55.17:/mydocker/springboot
然后在linux中查看,文件已经成功上传了。
在linux中构建镜像(docker可以看我之前学习的Docker基础入门学习笔记)
# . 必须加,是代表当前目录下
docker build -t hello .
使用docker images
就可以看到构建好的hello镜像了。
使用docker run -d -p 8080:8080 --name hello1 hello
运行hello镜像获取对应的容器。
然后就可以用docker ps
看到我们已经启动的hello容器了。
此时就可以通过linux上的ip加端口号进行访问了。(10.211.55.17是我linux的IP地址)
运行的容器可以通过docker stop 容器id
进行停止。
通过docker start 容器id
启动已经停止的容器。