绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
Docker【三】:Docker中部署SpringBoot项目
2020-05-09 11:53:00

本文目录:

  • 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的使用,请关注本专栏

后期更新将会时间收到通知

哪里写的不好的地方,请留言私信


随手点赞,手有余香

分享好友

分享这个小栈给你的朋友们,一起进步吧。

Docker 专区
创建时间:2020-05-08 10:53:18
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

技术专家

查看更多
  • 小雨滴
    专家
戳我,来吐槽~