docker-compose部署一个springboot项目(包含环境)

简介: docker-compose部署一个springboot项目(包含环境)

docker-compose部署一个springboot项目(包含环境)

搭建docker及docker-compose环境

【说明】首先对于环境的搭建

  • docker环境搭建
# 安装需要的软件包
yum install -y yum-utils device-mapper-persistent-data lvm2
# 设置stable镜像仓库
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 更新yum软件索引
yum makecache fast
# 安装Docker-ce
yum -y install docker-ce
# 启动Docker
systemctl start docker
# 开机自启
systemctl enable docker
# 配置Docker镜像加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://c2yf9ia3.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
  • docker-compose环境搭建
# 这里下载可能有点慢
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-linux-x86_64" -o /usr/local/bin/docker-compose
# 配置权限
sudo chmod +x /usr/local/bin/docker-compose

【警告】注意这里我选择的是1.29.2版本,因为我的docker版本是最新的,所以选择docker-compose也是最新的

  • 创建一个公共的docker网络
  • docker network ls

  • 创建命令为docker network create kuocai_network
  • 编写dockerfile文件
#环境
FROM openjdk:8-jdk-alpine 
#日期问题,8小时差解决
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
# 这个可以不加,直接运行
COPY test-project-0.0.1-SNAPSHOT.jar /test-project.jar
CMD ["java","-jar","test-project.jar"]
  • 上传打包的test-project.jar包到dockerfile同级目录下执行以下命令
# test-project为镜像的名称,默认没给版本号就是最新版,如果指定build版本可用test-project:1.0
docker build -t test-project .
  • 编写docker-compose.yml文件
version: '3'
services:
  web:
    image: test-project
    environment:
      SPRING_DATASOURCE_URL: jdbc:mysql://test-project-mysql:3306/test_cdn?serverTimezone=Hongkong&useAffectedRows=true&characterEncoding=utf-8
      SPRING_DATASOURCE_USERNAME: root
      SPRING_DATASOURCE_PASSWORD: test123
      SPRING_REDIS_HOST: test-project-redis
      SPRING_REDIS_PORT: 6379
      SPRING_REDIS_PASSWORD: test123
      SPRING_STORAGE_TYPE: minio
      SPRING_MINIO_URL: http://test-project-minio:9000
      SPRING_MINIO_ACCESS_KEY: test
      SPRING_MINIO_SECRET_KEY: test123
    ports:
      - "8086:8080"
    depends_on:
      - test-project-mysql
      - test-project-redis
      - test-project-minio
    networks:
      - kuocai_network
  test-project-mysql:
    image: mysql:5.7
    environment:
      MYSQL_ROOT_PASSWORD: test123
      MYSQL_DATABASE: test_cdn
      MYSQL_USER: test
      MYSQL_PASSWORD: test123
      MYSQL_LOWER_CASE_TABLE_NAMES: 1
      MYSQL_LOWER_CASE_COLUMN_NAMES: 1
    ports:
      - "3309:3306"
    volumes:
      - ./mysql:/var/lib/mysql
    networks:
      - kuocai_network
  test-project-redis:
    image: redis
    ports:
      - "6376:6379"
    volumes:
      - ./redis.conf:/usr/local/etc/redis/redis.conf
      - ./redis-data:/data
    command: redis-server /usr/local/etc/redis/redis.conf
    networks:
      - test_network
  test-project-minio:
    image: minio/minio
    environment:
      MINIO_ACCESS_KEY: test
      MINIO_SECRET_KEY: test123
      MINIO_LOG_LEVEL: debug
    ports:
      - "9002:9000"
      - "9003:9001"
    command: server /data
    volumes:
      - ./data:/data
    networks:
      - kuocai_network
networks:
  kuocai_network:
    driver: bridge

【警告】上面的端口映射其实可以去掉的,因为他们都在同一个network下面,所以根据容器名称就可以直接访问了,同时springboot的配置文件中也是配置web.environment下的东西

  • 最后执行docker-compose up -d
相关文章
|
10月前
|
应用服务中间件 网络安全 nginx
手把手教你使用 Docker 部署 Nginx 教程
本文详解Nginx核心功能与Docker部署优势,涵盖镜像拉取、容器化部署(快速、挂载、Compose)、HTTPS配置及常见问题处理,助力高效搭建稳定Web服务。
4289 4
|
11月前
|
存储 Docker Python
docker 部署 sftp
本文介绍SFTP服务的部署与配置,包括users.conf用户配置规则、Docker容器运行命令及上传目录权限说明,重点解析atmoz/sftp镜像的chroot机制与子目录映射,确保用户登录后正确访问/upload目录,并提供Python脚本实现文件上传示例。
882 12
docker 部署 sftp
|
10月前
|
应用服务中间件 Linux nginx
在虚拟机Docker环境下部署Nginx的步骤。
以上就是在Docker环境下部署Nginx的步骤。需要注意,Docker和Nginix都有很多高级用法和细节需要掌握,以上只是一个基础入门级别的教程。如果你想要更深入地学习和使用它们,请参考官方文档或者其他专业书籍。
485 5
|
10月前
|
存储 NoSQL Redis
手把手教你用 Docker 部署 Redis
Redis是高性能内存数据库,支持多种数据结构,适用于缓存、消息队列等场景。本文介绍如何通过Docker快速拉取轩辕镜像并部署Redis,涵盖快速启动、持久化存储及docker-compose配置,助力开发者高效搭建稳定服务。
2952 8
|
10月前
|
存储 搜索推荐 数据库
🚀 RAGFlow Docker 部署全流程教程
RAGFlow是开源的下一代RAG系统,融合向量数据库与大模型,支持全文检索、插件化引擎切换,适用于企业知识库、智能客服等场景。支持Docker一键部署,提供轻量与完整版本,助力高效搭建私有化AI问答平台。
8583 8
|
10月前
|
存储 关系型数据库 MySQL
MySQL Docker 容器化部署全指南
MySQL是一款开源关系型数据库,广泛用于Web及企业应用。Docker容器化部署可解决环境不一致、依赖冲突问题,实现高效、隔离、轻量的MySQL服务运行,支持数据持久化与快速迁移,适用于开发、测试及生产环境。
1378 4
|
弹性计算 应用服务中间件 Linux
基于ECS快速搭建Docker环境
本教程介绍如何快速搭建Docker环境,并使用Docker部署一个Nginx服务。
基于ECS快速搭建Docker环境
|
弹性计算 应用服务中间件 nginx
|
弹性计算 应用服务中间件 Linux
基于ECS快速搭建Docker环境(进阶班-Day2)
安装Docker总结下来只需要4步: 1、安装Docker-CE 2、配置加速镜像(国内网络原因导致) 3、使用Docker安装Nginx服务 4、测试Nginx
1926 0
基于ECS快速搭建Docker环境(进阶班-Day2)

热门文章

最新文章