docker-compose 实战案例

文章目录

          • 一、Compose入门案例
            • 1. 依赖
            • 2. 实体类
            • 3. mapper接口
            • 4. 启动类
            • 5. yml配置
            • 6. 测试案例
            • 7. 打包
          • 二、制作 DockerFile和docker-compose.yml
            • 2.1. 制作 DockerFile
            • 2.2. docker-compose.yml
          • 三、打包部署
            • 3.1. 资料上传
            • 3.2. 启动docker-compose
            • 3.3. 创建表
            • 3.4. 接口测试
            • 3.5. 数据验证
            • 3.6. Compose常用命令

一、Compose入门案例

流程:

  1. 需要定义一个docker-compose.yml文件----工程
  2. 需要在docker-compose文件配置依赖服务
  3. docker-compose up 执行该文件
1. 依赖

创建springboot项目

   <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.1</version></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency>
2. 实体类
package com.gblfy.entity;import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;/**** @Author gblfy* @Date 2022-03-20 8:18**/
@Data
@ToString
@EqualsAndHashCode
@AllArgsConstructor
@NoArgsConstructor
@TableName("docker_compose_entity")
public class DockerComposeEntity {private Integer id;private String name;
}
3. mapper接口
package com.gblfy.mapper;import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.gblfy.entity.DockerComposeEntity;/**** @Author gblfy* @Date 2022-03-20 8:17**/
public interface DockerComposeMapper extends BaseMapper<DockerComposeEntity> {
}
4. 启动类
package com.gblfy;import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
@MapperScan("com.gblfy.mapper")
public class DockerComposeApplication {public static void main(String[] args) {SpringApplication.run(DockerComposeApplication.class, args);}}
5. yml配置
spring:datasource:url: jdbc:mysql://mysql:3306/docker-compose-boot?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTCusername: rootpassword: 123456driver-class-name: com.mysql.cj.jdbc.Driver
server:###端口号port: 8080servlet:##设置springboot项目访问路径context-path: /gblfy
6. 测试案例
package com.gblfy;import com.gblfy.entity.DockerComposeEntity;
import com.gblfy.mapper.DockerComposeMapper;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;import javax.annotation.Resource;/**** @Author gblfy* @Date 2022-03-20 8:16**/
@RestController
public class DockerComposeController {@Resourceprivate DockerComposeMapper dockerComposeMapper;@PostMapping("/insert")public String insert() {DockerComposeEntity dockerComposeEntity = new DockerComposeEntity();dockerComposeEntity.setId(1);dockerComposeEntity.setName("zhangsan");dockerComposeMapper.insert(dockerComposeEntity);return "success";}
}
7. 打包
mvn clean package -Dmaven.test.skip=true
二、制作 DockerFile和docker-compose.yml
2.1. 制作 DockerFile
# Docker image for springboot file run
#VERSION 0.0.1
#Author: GBLFY
# 基础镜像使用java
FROM java:8
# 作者
MAINTAINER gblfy.com
# VOLUME 指定了临时文件目录为/tmp。
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp,测试可以这样,企业中这里建议docker真实目录并赋予权限
VOLUME /tmp
# 将jar包添加到容器中并更名为docker-compose-boot.jar
ADD docker-compose-0.0.1-SNAPSHOT.jar docker-compose-boot.jar
# 运行jar包
RUN bash -c 'touch /docker-compose-boot.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/docker-compose-boot.jar"]
#暴露8080端口
EXPOSE 8080
2.2. docker-compose.yml
version: "3.0"
services:mysql: # mysql服务image: mysql:5.7command: --default-authentication-plugin=mysql_native_password #解决外部无法访问ports:- "3306:3306"      #容器端口映射到宿主机的端口environment:MYSQL_ROOT_PASSWORD: 'root'MYSQL_ALLOW_EMPTY_PASSWORD: 'no'MYSQL_DATABASE: 'docker-compose-boot'MYSQL_USER: 'gblfy'MYSQL_PASSWORD: '123456'networks:- gblfy_webdocker-compose-boot-web: #自己单独的springboot项目hostname: gblfybuild: ./     #需要构建的Dockerfile文件ports:- "38000:8080"      #容器端口映射到宿主机的端口depends_on:      #web服务依赖mysql服务,要等mysql服务先启动- mysqlnetworks:- gblfy_web
networks:  ## 定义服务的桥gblfy_web:

这里演示为了看测试效果,关键的目录映射没有设置,企业中是需要把数据目录和日志目录映射到宿主机目录,简言之,目录挂载

三、打包部署
3.1. 资料上传
docker-compose-0.0.1-SNAPSHOT.jar
docker-compose.yml
Dockerfile

在这里插入图片描述

3.2. 启动docker-compose
cd /app/docker-compose-boot
docker-compose up

日志(拉取mysql5.7镜像和jdk8镜像我已经操作过了,下面日志是将springboot项目打包成镜像)

Building docker-compose-boot-web
Step 1/7 : FROM java:8---> d23bdf5b1b1b
Step 2/7 : MAINTAINER gblfy.com---> Running in b052905b2072
Removing intermediate container b052905b2072---> 980a20b17ff7
Step 3/7 : VOLUME /tmp---> Running in d62f63bb0b52
Removing intermediate container d62f63bb0b52---> 51a9d0815625
Step 4/7 : ADD docker-compose-0.0.1-SNAPSHOT.jar docker-compose-boot.jar---> 8c574ff477a7
Step 5/7 : RUN bash -c 'touch /docker-compose-boot.jar'---> Running in 3722a261b8ed
Removing intermediate container 3722a261b8ed---> b6892e5f045a
Step 6/7 : ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/docker-compose-boot.jar"]---> Running in 5bc7270bbfd7
Removing intermediate container 5bc7270bbfd7---> d7c53524cf66
Step 7/7 : EXPOSE 8080---> Running in 92e2c377c0ca
Removing intermediate container 92e2c377c0ca---> f18c2c26bf27
Successfully built f18c2c26bf27
Successfully tagged docker-compose-boot_docker-compose-boot-web:latest
WARNING: Image for service docker-compose-boot-web was built because it did not already exist. To rebuild this image you must use `docker-compose build` or `docker-compose up --build`.
Creating docker-compose-boot_mysql_1 ... done
Creating docker-compose-boot_docker-compose-boot-web_1 ... done
3.3. 创建表

在这里插入图片描述

3.4. 接口测试

http://192.168.92.134:38000/gblfy/insert
在这里插入图片描述

3.5. 数据验证

在这里插入图片描述

3.6. Compose常用命令
docker-compose -h                           # 查看帮助docker-compose up                           # 创建并运行所有容器
docker-compose up -d                        # 创建并后台运行所有容器
docker-compose -f docker-compose.yml up -d  # 指定模板
docker-compose down                         # 停止并删除容器、网络、卷、镜像。docker-compose logs       # 查看容器输出日志
docker-compose pull       # 拉取依赖镜像
dokcer-compose config     # 检查配置
dokcer-compose config -q  # 检查配置,有问题才有输出docker-compose restart   # 重启服务
docker-compose start     # 启动服务
docker-compose stop      # 停止服务

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/515861.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

F5打造“感知可控,随需而变的应用”  助力企业实现非凡数字体验

2020年12月16日&#xff0c;F5举办线上发布会&#xff0c;介绍其全新理念—“感知可控&#xff0c;随需而变的应用”(Adaptive Applications)&#xff0c;以及相应的创新性整体解决方案。在当前数字化转型加速的背景下&#xff0c;F5致力于为企业打造感知可控、随需应变的应用&…

软考 - 排序算法

文章目录1.总览1.待操作数组2.直接插入排序&#xff08;O(n2)&#xff09;3.希尔排序4.直接选择排序5.堆排序5.1.堆的分类5.2.原理&#xff1a;5.3. 堆排序方法&#xff1a;6.冒泡排序7.快速排序8.归并排序9.基数排序1.总览 1.待操作数组 private static int[] ori {30, 70, …

“数据湖”:概念、特征、架构与案例

写在前面&#xff1a; 最近&#xff0c;数据湖的概念非常热&#xff0c;许多前线的同学都在讨论数据湖应该怎么建&#xff1f;阿里云有没有成熟的数据湖解决方案&#xff1f;阿里云的数据湖解决方案到底有没有实际落地的案例&#xff1f;怎么理解数据湖&#xff1f;数据湖和大数…

DockerFile 入门到精通

文章目录一、DockerFile快速入门1. DockerFile 解析2. DockerFile编写规范3. DockerFile指令二、构建自己centos镜像2.1. 制作Dockerfile2.2. 构建镜像2.3. 运行容器一、DockerFile快速入门 1. DockerFile 解析 一个镜像文件到底是如何创建&#xff1f; dockerfile 描述出镜…

案例解析|广东自由流收费稽核方案,AI稽核新模式

随着取消省界收费站工程落成&#xff0c;我国逐步迈进全国高速公路“一张网”运行感知新时代。借助交通强国和“撤站”政策&#xff0c;2019年12月&#xff0c;广东联合电服和阿里云共同宣布&#xff0c;全国首个高速不停车收费AI稽核项目正式落地广东&#xff0c;在业内率先使…

赠书 | 读懂 x86 架构 CPU 虚拟化,看这文就够了

作者 | 王柏生、谢广军导读&#xff1a;本文摘自于王柏生、谢广军撰写的《深度探索Linux系统虚拟化&#xff1a;原理与实现》一书&#xff0c;介绍了CPU虚拟化的基本概念&#xff0c;探讨了x86架构在虚拟化时面临的障碍&#xff0c;以及为支持CPU虚拟化&#xff0c;Intel在硬件…

nacos 持久化 mysql(windows/linux环境)

文章目录1. 下载nacos-server2. 修改配置3. 创建数据库4. 初始化数据库脚本5. 启动nacos1. 下载nacos-server nacos-server-1.4.3.zip https://github.91chi.fun//https://github.com//alibaba/nacos/releases/download/1.4.3/nacos-server-1.4.3.zip解压 略 2. 修改配置 c…

HSF服务注册失败,项目启动后,EDAS列表无法发现注册的服务

背景&#xff1a; 本地使用edas轻量配置中心进行开发联调。 异常现象&#xff1a; 1.redis和edas已经启动正常&#xff0c;本地http://localhost:8080可以打开&#xff0c;但是配置列表和服务列表为空。 2.项目可以正常启动&#xff0c;但是postman调用时&#xff0c;发生hs…

解密阿里云高效病原体基因检测工具

1.背景介绍 病原体基因检测&#xff0c;为各种严重感染的诊断提供了基础。病原体检测流程分成五个步骤&#xff1a;&#xff08;1&#xff09;采集病人的样本&#xff0c;比方说静脉血&#xff0c;痰液&#xff0c;肺泡灌洗液&#xff0c;或者脑脊髓液等。&#xff08;2&#…

企业使用云计算低效益怎么办?区块链或成良药

作者 | Ged Alexander翻译 | 火火酱,责编 | 晋兆雨出品 | CSDN云计算头图 | 付费下载于视觉中国在云资源浪费现象激增的大环境中&#xff0c;企业如何才能寻得一线生机&#xff1f;借助云计算服务&#xff0c;企业和开发人员能够通过互联网远程组织资源并运行工作负载。全球范围…

基于X-Engine引擎的实时历史数据库解决方案揭秘

实时历史库需求背景 在当今的数字化时代&#xff0c;随着业务的迅速发展&#xff0c;每天产生的数据量会是一个惊人的数量&#xff0c;数据库存储的成本将会越来越大&#xff0c;通常的做法是对历史数据做归档&#xff0c;即将长期不使用的数据迁移至以文件形式存储的廉价存储…

seata 整合 nacos(windows/linux环境)

文章目录一、下载安装nacos-server二、 seata-server下载配置2.1. 下载seata-server-1.4.2.zip2.2. 修改配置2.3. 创建命名空间2.4. 配置registry.conf2.5. 创建数据库2.6. 初始化sql脚本2.7. 配置config.txt2.8. 创建nacos-config.sh2.9. 初始化脚本数据到nacos2.10. 数据验证…

加密相关(对称加密、非对称加密、信息摘要、数字签名、CA数字证书)

1.对称加密&#xff1a; 说明&#xff1a;加密的密钥和解密的密钥相同&#xff1b;效率快&#xff1b;适合加密大信息量 常见算法&#xff1a;DES、3DES、AES、RC-5 块加密&#xff1a; 流加密&#xff1a;数据量大时效率高 2.非对称加密&#xff1a; 说明&#xff1a;加密的…

ClickHouse内核分析-MergeTree的存储结构和查询加速

注&#xff1a;以下分析基于开源 v19.15.2.2-stable 版本进行 引言 ClickHouse是最近比较火的一款开源列式存储分析型数据库&#xff0c;它最核心的特点就是极致存储压缩率和查询性能&#xff0c;本人最近正在学习ClickHouse这款产品中。从我个人的视角来看存储是决定一款数据…

“智汇光大 E启未来” 中国光大集团ESBU协同核心系统1.0正式发布

12月22日&#xff0c;“中国光大集团ESBU协同核心系统1.0”正式发布&#xff0c;标志着光大集团战略和光大数字化发展取得又一重大进展。光大集团党委书记、董事长李晓鹏现场发布“E-SBU协同核心系统”及“光大云生活”超级APP。集团党委副书记、副董事长、总经理吴利军在发布会…

云原生之路:容器技术落地最佳实践

云栖号资讯&#xff1a;【点击查看更多行业资讯】 在这里您可以找到不同行业的第一手的上云资讯&#xff0c;还在等什么&#xff0c;快来&#xff01; 阿里妹导读&#xff1a;随着容器技术的快速发展和广泛应用&#xff0c;毫无疑问云原生技术是未来发展的必然趋势。作为国内最…

SpringBoot微服务项目构建war包 部署排除指定jar

文章目录一、构建war包部署SpringBoot项目二、构建war包2.1. 适用范围2.2. 构建war包三、部署排除指定jar3.1. 下载排除插件3.2. 搜索部署排除指定jar3.3. 排除部署指定jar3.4. 验证3.5. 核心理念一、构建war包部署SpringBoot项目 如何把springboot项目构架war包部署到tomcat上…

软件设计师 - 算法思想

文章目录递归和迭代软考常见算法思想分治法回溯法贪心法动态规划法递归和迭代 递归&#xff1a;函数不断的调用自己&#xff0c;存在终止条件&#xff0c;分为递推和回归两部分&#xff1b; 迭代&#xff1a;不断用变量的旧值递推新值的过程&#xff0c;当前保存的结果作为下一…

毕业两年升主管,自沉稳而后顾人 对话阿里云MVP陈琦

云栖号资讯&#xff1a;【点击查看更多行业资讯】 在这里您可以找到不同行业的第一手的上云资讯&#xff0c;还在等什么&#xff0c;快来&#xff01; 简介&#xff1a; 1993年出生&#xff0c;毕业2年&#xff0c;团队主管&#xff0c;这是我对陈琦产生好奇的原因。但随着他优…

极道创始人吴江:企业级数据系统,初创一样可以做出好产品

随着云、大数据炒作热度褪去&#xff0c;对数据的存储计算技术正在回归理性。在存储这条传统toB市场的赛道上&#xff0c;创业远比toC市场复杂艰难许多。近日&#xff0c;一家以分布式文件存储创业&#xff0c;集合了存储计算与数据分析的初创公司——极道&#xff0c;表示从20…