Docker 部署SpringBoot项目整合 Redis 镜像做访问计数Demo
最终效果如下
大概就几个步骤
- 1.安装 Docker CE
- 2.运行 Redis 镜像
- 3.Java 环境准备
- 4.项目准备
- 5.编写 Dockerfile
- 6.发布项目
- 7.测试服务
环境准备
- 系统:Ubuntu 17.04 x64
- Docker 17.12.0-ce
- IP:45.32.31.101
一、安装 Docker CE
国内不建议使用:“脚本进行安装”,会下载安装很慢,使用步骤 1 安装,看下面的链接:常规安装方式
1.常规安装方式
https://www.ymq.io/2018/01/11/Docker-Install-docker-ce
2.脚本进行安装
国内安装不建议使用脚本:
安装Docker CE
1 | $ curl -fsSL get.docker.com -o get-docker.sh |
验证Docker CE
通过运行hello-world
镜像 验证是否正确安装了Docker CE
1 | $ sudo docker run hello-world |
1 | root@souyunku:~# sudo docker images |
二、运行 Redis 镜像
1.运行镜像
1 | $ docker run --name redis-6379 -p 6379:6379 -d redis |
1 | Unable to find image 'redis:latest' locally |
2.检查镜像
查看镜像
1 | root@souyunku:~# docker images redis |
查看镜像进程
1 | root@souyunku:~# docker ps |
查看容器进程
1 | root@souyunku:~# docker container ps |
3.测试Redis服务
通过 redis-cli
连接Redis
服务,测试存储数据
1 | root@souyunku:~# docker run -it --link redis-6379:redis --rm redis redis-cli -h redis -p 6379 |
三、Java 环境准备
注意:阅读以下步骤!!!
1.Java 环境是为了,编译
Github Maven SpringBoot
示例项目,准备2.或者自己在本地编译好上传也行,那么以下
Java
环境,安装:Jdk
,Maven
,Git
,就可以不用配置
1.安装 Jdk
下载JDK 方式:1
下载Linux环境下的jdk1.8,请去(官网)中下载jdk的安装文件
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
下载JDK 方式:2
我在百度云盘分下的链接:http://pan.baidu.com/s/1jIFZF9s 密码:u4n4
下载JDK 方式:3
使用wget下载,
1 | $ wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u141-b15/336fa29ff2bb4ef291e347e091f7f4a7/jdk-8u141-linux-x64.tar.gz" |
注意,如果使用:下载JDK 方式:3
那么以下步骤的,jdk1.8.0_144
替换成jdk1.8.0_141
开始安装
上传在 /opt
目录
解压
1 | $ cd /opt |
配置环境变量
1 | $ vi /etc/profile |
1 | #jdk |
使环境变量生效1
$ source /etc/profile
验证
1 | root@souyunku:~# java -version |
2.安装 Maven
1 | $ apt-get install maven |
验证Maven
1 | root@souyunku:~# mvn -v |
3.安装 Git
1 | $ apt-get install git |
验证Git
1 | root@souyunku:~# git --version |
四、项目准备
1.编译项目
1.自己在服务器Maven编译项目
使用 git 克隆项目
1 | $ git clone https://github.com/souyunku/other-projects.git |
使用 maven 编译项目
1 | $ cd other-projects/docker-spring-boot-demo/ |
2.修改项目
修改 Redis
服务器地址spring.redis.host=45.32.44.217
,为本地IP
, 在运行 Redis
镜像时候 已经把 Redis
做成外网服务了0.0.0.0:6379->6379/tcp
1 | $ vi src/main/resources/application.properties |
1 | # Redis服务器地址 |
1 | $ mvn package |
复制target/
目录下的docker-spring-boot-demo-0.0.1-SNAPSHOT.jar
项目到/opt
目录稍后会用到
1 | $ cp target/docker-spring-boot-demo-0.0.1-SNAPSHOT.jar /opt/ |
2.自己在本地Maven
编译项目,然后上传到/opt
目录稍后会用到
修改application.properties
的 Redis
服务器地址
other-projects/docker-spring-boot-demo/src/main/resources/application.properties
1 | # Redis服务器地址 |
五、编写 Dockerfile
编写 Dockerfile
基于java:8
镜像为基础
1 | $ cd /opt/ |
编辑内容个如下
1 | # 基于哪个镜像 |
六、发布项目
1.编译镜像
1 | $ cd /opt/ |
看到如下信息,就证明你的Dockerfile
写的没毛病,而且镜像也编译成功了
1 | Sending build context to Docker daemon 18.72MB |
2.查看镜像
1 | root@souyunku:/opt# docker images souyunku-app |
3.运行镜像
后台守护进程运行,然后把容器端口映射到,外网端口80
1 | root@souyunku:/opt# docker run --name MySpringBoot -d -p 80:80 souyunku-app:v1 |
4.查看进程
查看容器进程,可以看到redis 在 6379
端口,MySpringBoot
项目在 80
端口
1 | root@souyunku:/opt# docker container ps |
七、测试服务
浏览器访问:http://127.0.0.1/,当然我没有输入127.0.0.1
我是在服务器上直接做的,用的公网IP
Docker Compose
Docker Compose
是 Docker
官方编排(Orchestration
)项目之一,负责快速在集群中部署分布式应用。
一个使用Docker
容器的应用,通常由多个容器组成。使用Docker Compose
,不再需要使用shell
脚本来启动容器。在配置文件中,所有的容器通过services
来定义,然后使用docker-compose
脚本来启动,停止和重启应用,和应用中的服务以及所有依赖服务的容器
Docker Compose 的搭建,实战用例正在整理中,会在下篇文章体现,关注公众号:”搜云库” 我会在微信公众号首发
GitHub :docker-spring-boot-demo
https://github.com/souyunku/other-projects/tree/master/docker-spring-boot-demo
作者:搜云库技术团队
出处:https://www.souyunku.com
首发微信公众号:搜云库技术团队,微信号ID:souyunku
版权归原创作者所有,任何形式转载请联系作者
