本文目录:
- 1.前言
- 2.编写Spring Boot项目
- 3.文件编写
- 4.测试
- 5.总结
1、前言:
服务器环境: ubuntu16.04,docker版本:1.12.6
开发环境:Window10,Eclipse,JDK8,Maven3.5.0
关于docker的安装与常用命令使用,可以看:Docker【一】:Docker入门及常用命令
本文脚本下载查看地址:caov/Blog/Docker文件
2、编写Spring Boot项目
我这里编写个简单的Spring Boot项目,创建Spring Starter Project
a、pom文件引入web依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
b、启动类内容:
@SpringBootApplication
@RestController
public class DockerDemoApplication {
public static void main(String[] args) {
SpringApplication.run(DockerDemoApplication.class, args);
}
@RequestMapping
public String home() {
return "Hello Docker World";
}
}
c、启动项目,浏览器访问:
d、打成jar包,(本文用的IDE是Eclipse)
e、将jar包,上传到服务器(本文是通过Xshell+Xftp)
3、文件编写
a、在jar包同级目录新建个Dockerfile文件
Docker文件内容如下:
FROM java:8
VOLUME /tmp
ADD DockerDemo-0.0.1-SNAPSHOT.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java","-jar","/app.jar"]
- FROM java:8,表示基镜像是java8
- VOLUME /tmp,表示 指定临时文件目录为/tmp。其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp。该步骤是可选的
- ADD DockerDemo-0.0.1-SNAPSHOT.jar app.jar,表示将jar包添加到镜像中,并重命名app.jar
- EXPOSE 8080,表示暴露的端口是8080
- ENTRYPOINT ["java","-jar","/app.jar"],表示启动时运行 java -jar app.jar
b、编写启动脚本startup.sh
APPNAME=dockerdemo
PORT=8080
docker build -t $APPNAME .
docker run -d -h 127.0.0.1 --name $APPNAME -p $PORT:$PORT $APPNAME
镜像名称必须小写(如dockerdemo),大写启动会报错
docker build -t $APPNAME .
表示 执行编译镜像,$APPNAME 是镜像名称;“.”表示Dockerfile在当前路径下。
docker run -d -h 127.0.0.1 --name $APPNAME -p $PORT:$PORT $APPNAME
运行镜像,端口映射为8080
c、编写停止脚本shutdown.sh
APPNAME=dockerdemo
docker ps -a | grep "$APPNAME" | awk '{print $1 }'|xargs docker stop
docker ps -a | grep "$APPNAME" | awk '{print $1 }'|xargs docker rm
docker images|grep "$APPNAME"|awk '{print $3 }'|xargs docker rmi
分为三步:停止容器,删除容器,删除镜像
4、测试
a、运行startup.sh
b、docker查看容器
c、浏览器访问
访问成功。
5、总结:
本文脚本下载查看地址:caov/Blog/Docker文件
本文介绍了在docker中部署SpringBoot项目
更多关于Docker,Spring Boot的使用,请关注本专栏
后期更新将会时间收到通知
哪里写的不好的地方,请留言私信
随手点赞,手有余香