Docker部署springboot项目并连接上docker的mysql

2023-10-27

首先:我是参考着几篇博客:

https://blog.csdn.net/hangao233/article/details/104395693
https://www.jianshu.com/p/397929dbc27d

第一步:先在虚拟机或服务器上安装docker服务

要安装Docker Engine,您需要CentOS 7或8的维护版本。不支持或未测试存档版本。

1,卸载旧版本

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

在这里插入图片描述
yum报告没有安装这些软件包就可以了。

2,安装docker软件包

sudo yum install -y yum-utils

3,设置镜像仓库地址

# 默认是国外的
sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
    
# 换成阿里云镜像地址
sudo yum-config-manager \
    --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

在这里插入图片描述

4,安装最新版Docker Engine容器

安装前建议先将将服务器上的软件包信息现在本地缓存,以提高安装软件的速度

sudo yum makecache fast

在这里插入图片描述

# docker-ce社区版(docker-ee企业版)
sudo yum install docker-ce docker-ce-cli containerd.io

在这里插入图片描述安装完成后,Docker只安装但并未启动

5,启动Docker

sudo systemctl start docker

然后可用docker version命令测试Docker是否安装成功,并查看Docker的版本信息
在这里插入图片描述

第二步:使用Docker安装mysql:5.7

1可以先在docker hub上查找mysql的镜像

docker search mysql

在这里插入图片描述

2,我这次安装的mysql:5.7

所以直接从docker hub上拉取mysql:5.7

docker pull mysql:5.7

3,运行mysql

#运行容器,需要做数据挂载! #安装启动MySQL,需要配置密码,这是要注意点!
#官方测试:docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
#启动:
-d 后台运行
-p 端口映射
-v 卷挂载
-e 环境配置
–name 容器名字

docker run -d -p 3306:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v/home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql0 mysql:5.7

4,查看容器是否创建成功

# docker  ps 命令
      #列出当前正在运行的容器
-a    #列出当前正在运行的容器+带出历史运行过的容器
-n=?  #显示最近创建的容器
-q    #只显示容器的编号

docker ps

在这里插入图片描述
有个命令,可以进入容器内部,ctrl+p+q可以以后台运行的方式退出这个软件

docker exec -it 容器的id /bin/bash

5,使用navicat连接服务器或虚拟机上的mysql

在这里插入图片描述

6,可以使用navicat提供的工具进行数据的传输

在这里插入图片描述
然后可以看到数据已经传输成功:
在这里插入图片描述

第三步:将springboot项目打包

1.准备springboot项目并进行打包

在这里插入图片描述
打包成功会看到出现一个target的目录,里面的jar包就是我们刚刚打包好的
在这里插入图片描述
然后对yml文件进行编辑:
在这里插入图片描述

2.编写DockerFile文件

在idea的插件市场搜索docker,并安装
在这里插入图片描述
然后在根目录下新建一个Dockerfile的文件:
在这里插入图片描述
如果显示是这样的说明docker那个插件下载安装成功,然后编写Dockerfile文件:

FROM            #基础镜像,一切从这里开始构建。
MAINTAINER      #镜像是谁写的,姓名+邮箱
RUN             #镜像构建的时候需要运行的命令
ADD             #步骤:tomcat镜像,这个tomcat压缩包!添加内容
WORKDIR         #镜像的工作目录
VOLUME          #挂载的目录
EXPOST          #保留端口配置
CMD             #指定这个容器启动的时候要运行的命令,只有一个会生效,可被替代。
ENTRYPOINT      #指定这个容器启动的时候要运行的命令,可以追加命令。
ONBUILD         #当构建一个被集成DockerFile这个时候就会运行ONBUILD的指令。触发指令。
COPY            #类似ADD,将我们文件拷贝到镜像中。
ENV             #构建的时候设置环境变量。

在这里插入图片描述

在这里插入图片描述

3.构建镜像

使用xftp将刚才打包的jar包还有编写的Dockerfile文件上传到虚拟机或是服务器

在这里插入图片描述
然后使用命令构建镜像:

[root@localhost project]# ls
Dockerfile  onlineExam-0.0.1-SNAPSHOT.jar

[root@localhost project]# docker build -t onlineexam .
Sending build context to Docker daemon  16.55MB
Step 1/5 : FROM java:8
8: Pulling from library/java
5040bd298390: Pull complete 
fce5728aad85: Pull complete 
76610ec20bf5: Pull complete 
60170fec2151: Pull complete 
e98f73de8f0d: Pull complete 
11f7af24ed9c: Pull complete 
49e2d6393f32: Pull complete 
bb9cdec9c7f3: Pull complete 
Digest: sha256:c1ff613e8ba25833d2e1940da0940c3824f03f802c449f3d1815a66b7f8c0e9d
Status: Downloaded newer image for java:8
 ---> d23bdf5b1b1b
Step 2/5 : COPY *.jar /app.jar
 ---> 63fda5bdcb6d
Step 3/5 : CMD ["--server.port=8888"]
 ---> Running in 5e94d333492d
Removing intermediate container 5e94d333492d
 ---> 59bd2f4e0120
Step 4/5 : EXPOSE 8888
 ---> Running in 99c4427313de
Removing intermediate container 99c4427313de
 ---> d4792bf4f884
Step 5/5 : ENTRYPOINT ["java","-jar","/app.jar"]
 ---> Running in da3be5f92a55
Removing intermediate container da3be5f92a55
 ---> 2df101d6382c
Successfully built a42985afa2f3
Successfully tagged onlineexam:latest

在这里插入图片描述
然后可以使用docker images 展示刚刚构建好的镜像
在这里插入图片描述

4.启动容器

[root@localhost project]#  docker run -d -p 8888:8888 onlineexam

-d参数是让容器后台运行 
-p 是做端口映射,此时将服务器中的8888端口映射到容器中的8888(项目中端口配置的是8888)端口

然后使用docker ps查看一下:
在这里插入图片描述
ok,到此启动成功了!
由于我此此的springboot项目使用了redis。你们可以选择使用docker安装,还可以参考一下我的这个centos 7安装redis

第四步:测试

因为我springboot使用了swagger(现在是knife4j),所以我在浏览器测试是否可以打开:
在这里插入图片描述
ok,测试一下功能都ok了。
到此就结束了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Docker部署springboot项目并连接上docker的mysql 的相关文章

随机推荐

  • pyqt 自定义信号,对默认信号触发的槽函数添加参数

    from PyQt5 QtCore import QObject pyqtSignal class QTypeSignal QObject sendmsg pyqtSignal object 使用pyqtSignal类实列发射信号 obje
  • Cuda

    文章目录 引言 一 Cuda安装 1 选择Cuda版本 2下载及运行安装程序 3 测试 二 Cudnn安装 1 进入官网下载对应cuda版本的cudnn 2 下载好相应版本并进行解压安装 3 解压完成后 4 测试 引言 学习的最大理由是想摆
  • Java知识点之Map(一)

    Map Map相关的内容在面试过程中都是一个重要的点 问深了会涉及到很多数据结构和线程相关的问题 你了解Map吗 常用的Map有哪些 Map是定义了适合存储 键值对 元素的接口 常见的Map实现类有HashMap Hashtable Lin
  • @RunWith注解的作用

    RunWith注解的作用 RunWith就是一个运行器 RunWith JUnit4 class 就是指用JUnit4来运行 RunWith SpringJUnit4ClassRunner class 让测试运行于Spring测试环境 Ru
  • 不容错过的Vue2.0组件开发

    简述 http www jianshu com p 313f11bccb33 utm source tuicool utm medium referral 本文针对于有Vue有一定基础的人学习了解 环境搭建等入门教程网上很多 大家自行学习
  • [ 注意力机制 ] 经典网络模型1——SENet 详解与复现

    Author Horizon Max 编程技巧篇 各种操作小结 机器视觉篇 会变魔术 OpenCV 深度学习篇 简单入门 PyTorch 神经网络篇 经典网络模型 算法篇 再忙也别忘了 LeetCode 注意力机制 经典网络模型1 SENe
  • 增程式电动汽车电控系统优化方法【matlab】

    一 主要内容 针对增程式电动汽车的传动系统架构 结合增程式乘用车和增程式电动公交的设计 对传动系统关键部件选型匹配以及电控系统工作模式进行论述 并论述了工况对行驶里程 以及电池充放电的影响因素 对通用汽车的Volt增程式电动汽车进行分析研究
  • B站价值60亿跨年晚会背后的微服务治理

    B站价值60亿跨年晚会背后的微服务治理 大家都知道微服务有两个痛点 一个是如何拆分微服务 微服务的边界怎么划分制定 二是微服务上了规模之后如何管理 因为只要上了规模 任何小小的问题都可能会被放大 最后导致雪崩效应 一 微服务化带来的挑战 上
  • 《Spring 5.x源码解析之Spring AOP 注解驱动使用及其实现原理》

    Spring 5 x源码解析之Spring AOP 注解驱动使用及其实现原理 学好路更宽 钱多少加班 mercyblitz 一 前言 大家好 欢迎阅读 Spring 5 x源码解析 系列 本篇作为该系列的第二篇 重点介绍Spring AOP
  • 离线搭建深度学习环境

    离线搭建深度学习环境 文章目录 离线搭建深度学习环境 Anaconda3离线安装 借助可联网PC下载安装包 安装Anaconda3 配置深度学习环境 获取深度学习环境 打包深度学习环境 拷贝深度学习环境 添加深度学习环境到环境列表 有时出于
  • Linux使用套接字 udp协议传输

    第一步是来认识库 需要哪些库 需要哪些库中的函数 哥们也只是 初学者 仅仅只是会调用的地步 后面有机会再加深 首先咱们需要清除的知道工作流程 第二步是直接写代码 开发工具 qtcreator6 环境 win10 虚拟机 ubuntu20 0
  • Vue学习杂记(五)——loader的使用

    Vue学习杂记 五 loader的使用 一 什么是loader 二 loader处理css 三 loader处理图片 四 loader处理高级的js语法 参考文献 引言 loader其实也是webpack系列的内容 考虑到webpack涉及
  • gradle使用教程,小白一篇就够

    概述 Gradle是新一代构建工具 从0 x版本一路走来虽然国内可寻的资料多了一些 但都是比较碎片化的知识 官方的Userguide虽然是业内良心之作 但无奈太长 且版本变化较快 又鉴于很多同学一看到英文内心便已认定无法读懂 遂打算利用业余
  • E tensorflow/stream_executor/cuda/cuda_dnn.cc:352] Loaded runtime CuDNN library: 5005 (compatibility

    WARNING tensorflow From usr local lib python2 7 dist packages tensorflow python util tf should use py 170 initialize all
  • MySQL逻辑架构图分析

    MySQL逻辑架构图 大体来说 MySQL 可以分为 Server 层和存储引擎层两部分 Server层 大多数MySQL的核心服务功能都在这一层 包括连接器 查询缓存 分析器 优化器 执行器 以及所有内置函数 日期 时间 数学 加密函数等
  • pnpm:高效、快速的npm

    什么是pnpm performent npm 速度快 节省磁盘空间的软件包管理器 为什么使用pnpm 使用npm安装依赖时 每次都会下载文件到硬盘中 当项目数量较多时 依赖包会占据大量的内存 pnpm就是解决这个问题的 pnpm如何解决 p
  • 手把手教你设置Typora的图床-gitee

    所需环境 typora node软件 所需软件及配置文末可下载 typora的激活安装可看以往教程点我查看typora激活 typora结合gitee图床的优势 分享文件只需要分享一个 md文件即可 插入的图片依旧可以访问 图床不限制 访问
  • Python创建索引,批量插入数据测试

    测试 coding utf 8 Created on 2019 6 13 10 19 25 author chenlin3 import esSdk class EsSdkTest def test self name EsSdkTest
  • CVE-2023-21839 【vulhub weblogic 漏洞复现】

    漏洞概述 由于Weblogic IIOP T3协议存在缺陷 当IIOP T3协议开启时 允许未经身份验证的攻击者通过IIOP T3协议网络访问攻击存在安全风险的WebLogic Server 漏洞利用成功WebLogic Server可能被
  • Docker部署springboot项目并连接上docker的mysql

    首先 我是参考着几篇博客 https blog csdn net hangao233 article details 104395693 https www jianshu com p 397929dbc27d 第一步 先在虚拟机或服务器上