利用Docker Compose整合springboot + mongo + redis
大致构架
mongo + redis + java jdk8
用Docker Compose 整合通信
构建springboot的docker镜像
-
java jdk8
从docker hub下载镜像,使用的镜像:https://hub.docker.com/r/mayan31370/openjdk-alpine-with-chinese-timezone/tags
下载镜像:docker pull 镜像
运行镜像:docker run -it repositoty-name
-
idea打包jar
可参考这篇博文https://www.cnblogs.com/zscc/articles/9428466.html -
将jar包拷入容器中
从宿主机拷贝到容器:docker cp source-path container-id:target-path
docker cp /home/icey/IdeaProjects/eveng/out/artifacts/eveng_jar 9101ab6b7b38:/test/
在docker中运行jar包:java -jar jarTest.jar
,建议先测试一下具体能不能跑在里面
java -jar eveng.jar
-
构建镜像
在你存放的jar所在的目录下,添加一个命名为Dockerfile的文件
文件内容如下
# jdk8
FROM java:8
VOLUME /tmp
# 将整个jar文件,包括依赖文件全部复制进镜像中
copy eveng_jar eveng_jar
RUN bash -c 'touch /eveng_jar/eveng.jar'
# 环境运行命令
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/eveng_jar/eveng.jar"]
开始构建镜像docker build -t springboot:eveng .
,
运行构建好的镜像docker run -it -p 8080:8080 springboot:eveng
,开放8080端口供外网IP访问
mongo部分
mongo镜像:https://hub.docker.com/_/mongo?tab=tags
选好自己要用的版本pull下来
redis部分
参考mongo
docker compass整合
Linux下载compass:sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
- 创建docker-compose.yml
# yaml 配置
version: '3'
services:
mongo:
image: mongo:4.4
# 数据持久化映射
volumes:
- /Users/data/mongo:/data/db
restart: always
ports:
- "27017:27017"
redis:
image: redis:latest
volumes:
- /Users/data/redis:/data
restart: always
ports:
- "6379:6379"
springboot:
image: springboot:eveng
depends_on:
- redis
- mongo
links:
- redis
- mongo
restart: always
ports:
- "8080:8080"
参考博客
- Docker 封装java镜像 https://blog.csdn.net/shykevin/article/details/102871399
- 菜鸟教程Docker Compose https://www.runoob.com/docker/docker-compose.html
- 使用docker简单启动springboot项目 https://www.cnblogs.com/zhangjianbing/p/9156366.html
- 使用docker-compose部署springboot项目 https://www.cnblogs.com/davenzeng/p/11491693.html