利用Docker Compose整合springboot + mongo + redis

利用Docker Compose整合springboot + mongo + redis

大致构架

mongo + redis + java jdk8
用Docker Compose 整合通信

构建springboot的docker镜像

  1. java jdk8
    从docker hub下载镜像,使用的镜像:https://hub.docker.com/r/mayan31370/openjdk-alpine-with-chinese-timezone/tags
    下载镜像:docker pull 镜像
    运行镜像:
    docker run -it repositoty-name

  2. idea打包jar
    可参考这篇博文https://www.cnblogs.com/zscc/articles/9428466.html

  3. 将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

  1. 构建镜像
    在你存放的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访问
利用Docker Compose整合springboot + mongo + redis

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
上一篇:Mongo学习笔记(五) 事务支持


下一篇:docker安装mongo(密码访问方式)附容器连接示例