Docker部署一个SpringBoot项目(超级详细)

news2024/12/23 23:53:58

注意:下面的教程主要是针对 Centos7 的,如果使用的其他发行版会有细微的差别,请查看官方文档。

Docker部署一个SpringBoot项目(超级详细)

  • 一、安装Docker
    • 1.卸载旧版
    • 2.配置Docker的yum库
    • 3.安装Docker
    • 4.设置开机自启动
    • 5.配置镜像加速
  • 二、安装MySQL容器
  • 三、自定义镜像
  • 四、参考


一、安装Docker

1.卸载旧版

  • 首先如果系统中已经存在旧的Docker,则先卸载:
    yum remove docker \
    	docker-client \
    	docker-client-latest \
    	docker-common \
    	docker-latest-logrotate \
    	docker-logrotate \
    	docker-engine
    

2.配置Docker的yum库

  • 首先安装一个yum工具

    yum install -y yum-utils
    
  • 安装成功后,执行命令,配置Docker的yum源

    yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    

3.安装Docker

  • 安装Docker
    yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
    docker --version
    

4.设置开机自启动

  • 设置Docker开机自启动,并且重启
    systemctl enable docker
    systemctl restart docker
    

5.配置镜像加速

  • 这个也可以不用配置,只是让下载镜像的速度更快而已。
  • 这个需要注册一个阿里云的账号,每个人的地址都是唯一的。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

二、安装MySQL容器

  • 创建MySQL文件的存放位置
    mkdir -p ~/dev/mysql
    cd ~/dev/mysql
    mkdir data
    mkdir conf
    mkdir init
    mkdir file
    ll
    cd ~   
    
  • 初始化SQL脚本放置在 init 目录下(没有可以不放)
  • 注意:这个只有在第一次创建MySQL容器的时候才会初始化,并且一定要在SQL脚本文件中选择database。
    在这里插入图片描述
  • 安装MySQL镜像
    docker run -d \
    --name mysql \
    -p 3306:3306 \
    -e TZ=Asia/Shanghai \
    -e MYSQL_ROOT_PASSWORD=123456 \
    -v /root/dev/mysql/data:/var/lib/mysql \
    -v /root/dev/mysql/init:/docker-entrypoint-initdb.d \
    -v /root/dev/mysql/conf:/etc/mysql/conf.d \
    -v /home/dev/mysql/file:/var/lib/mysql-files \
    mysql
    
  • 创建一个网络并且将MySQL加入网络中
    docker network create GDB
    docker network connect GDB mysql
    

三、自定义镜像

  • 创建存放应用的目录
    mkdir -p ~/myapp/olive-app
    cd ~/myapp/olive-app
    
  • 编写Dockerfile文件,自定义镜像
    # 基础镜像
    FROM openjdk:17
    #设定时区
    ENV TZ=Asia/Shanghai
    RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
    # 拷贝项目
    COPY olive-0.1.jar /olive.jar
    # 入口
    ENTRYPOINT ["java", "-jar", "/olive.jar"]
    
  • xxx.jarDockerfile 一起上传到服务器
    在这里插入图片描述
  • 构建自己应用的镜像
    docker build -t olive .
    
  • 利用镜像生成容器并且加入到前面创建的网络中与MySQL通信
    docker run -d --name olive -p 8800:8800 --network GDB olive
    

四、参考

  • [1]. 镜像仓库
  • [2]. Dockerfile的copy复制文件夹

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

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

相关文章

前端实现浏览器自定义滚动条

前言: 最近有个项目,产品觉得浏览器默认滚动条太丑了。想美化一下,比如自定义颜色,加上圆角,宽高都要更改一下。我查了资料和文档总结了一下 写法,特此记录以便之后使用。 浏览器滚动条api 总结&#xff…

2024年了,为何 Selenium 依然这么火?

今天给大家带来的主题是自动化测试框架Selenium,话不多说,直接开始! 1.什么是 Selenium 自动化测试 Jason Huggins 于 2004 年创建了一个 JavaScript 框架,旨在将其从重复的手动测试中解放出来。 最初命名为 JavaScriptTestRunn…

基于SpringCloud+Hadoop+Vue实现的企业级网盘系统实现

编程语言:Java、Mybatis、Spring、SpringBoot、SpringCloud、Node、Vue 开发环境:Windows 10 Mysql 开发工具:WebStorm、IDEA编译器、Git、Maven 应用部署服务器:SpringBoot内置Tomcat插件 Node服务器:Node v10.1…

【吊打面试官系列】Redis篇 -Redis 集群如何选择数据库?

大家好,我是锋哥。今天分享关于 【Redis 集群如何选择数据库?】面试题,希望对大家有帮助; Redis 集群如何选择数据库? Redis 集群目前无法做数据库选择,默认在 0 数据库。 Redis 集群不支持使用 SELECT 命令…

RF-TI1352P2—双频多协议高发射功率无线模块

RF-TI1352P2是一款基于TI CC1352P7为核心的双频(Sub-1 GHz 和 2.4 GHz)多协议高发射功率(20 dBm)无线模块;支持IPEX接口和邮票孔两种天线形式;模块除了集成负责应用逻辑的高性能 48 MHz ARM Cortex-M4F 主处…

实验02-1 C#和ASP.NET控件:在Web窗体中输出九九乘法表

【实验内容及要求】 1. 在Web窗体中输出九九乘法表 浏览效果如图2-1所示。 图2-1 在Default.aspx.cs中编写C#代码 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls;public par…

什么是通配符SSL证书?

在当前互联网环境中,数据传输安全至关重要,而通配符SSL证书作为保护多个子域名的理想工具,因其灵活、经济高效的特性而备受瞩目。本文将详细介绍通配符SSL证书的定义、主要特性及其价格区间。 通配符SSL证书的核心特性概述如下: …

【python】flask模板渲染引擎Jinja2中的模板继承,简化前端模块化开发

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…

霉霉说地道中文,口型、卡点几乎完美,网友:配音时代结束了?

ChatGPT狂飙160天,世界已经不是之前的样子。 新建了人工智能中文站 每天给大家更新可用的国内可用chatGPT资源 更多资源欢迎关注 「给电影配音的时代即将结束了。」 AI 的发展让很多人直呼饭碗被抢了,以前是艺术家、程序员…… 现在配音员也要失业了&a…

763. 划分字母区间(力扣LeetCode)

763. 划分字母区间 题目描述 给你一个字符串 s 。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。 注意,划分结果需要满足:将所有划分结果按顺序连接,得到的字符串仍然是 s 。 返回一个表示每个字符串…

Linux:基础IO

回顾C文件接口 stdin & stdout & stderr C 默认会打开三个输入输出流&#xff0c;分别是 stdin, stdout, stderr 仔细观察发现&#xff0c;这三个流的类型都是 FILE*, fopen 返回值类型&#xff0c;文件指针 系统文件I/O 接口介绍 open man open #include <sy…

LeetCode 每日一题 Day 109-115

1969. 数组元素的最小非零乘积 给你一个正整数 p 。你有一个下标从 1 开始的数组 nums &#xff0c;这个数组包含范围 [1, 2p - 1] 内所有整数的二进制形式&#xff08;两端都 包含&#xff09;。你可以进行以下操作 任意 次&#xff1a; 从 nums 中选择两个元素 x 和 y 。 选…

【贫民版】Springboot导入返回错误Excel表格 ---- 通过session存储字节数据,再获取写到响应体中。

目录 前言一、需求二、需求分析三、代码 前言 在开发中会遇到导入文件后&#xff0c;失败的数据需要整理在加上导入失败原因。 按照目前主流的方法&#xff0c;要么通过流输出到response响应体中&#xff0c;或者把失败的excel上传到服务器中&#xff0c;返回url让前端下载。…

pyqt 创建右键菜单栏

class MainModule(QMainWindow, Ui_MainWindow):def __init__(self):super().__init__(parentNone)self.setupUi(self)# 允许出现菜单栏self.tableWidget.setContextMenuPolicy(Qt.CustomContextMenu)# 对空间添加右键菜单栏处理 self.tableWidget.customContextMenuRequested.…

Redis入门到实战-第十九弹

Redis实战热身Count-min-sketch篇 完整命令参考官网 官网地址 声明: 由于操作系统, 版本更新等原因, 文章所列内容不一定100%复现, 还要以官方信息为准 https://redis.io/Redis概述 Redis是一个开源的&#xff08;采用BSD许可证&#xff09;&#xff0c;用作数据库、缓存、…

cuDNN——核心概念

在讨论graph和legacy API的细节之前&#xff0c;这一部分先介绍两者共同的核心概念。 cuDNN Handle cuDNN库暴露了一系列主机API&#xff0c;但是假设所有用到GPU的op&#xff0c;其必要的数据都可以直接从设备上访问。 使用cuDNN的应用必须先调用cudnnCreate()来初始化句柄…

【C/C++】C++中的四种强制类型转换

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; &#x1f525;c系列专栏&#xff1a;C/C零基础到精通 &#x1f525; 给大…

USART发送各种数据类型数据的原理及程序实现

硬件接线&#xff1a; 显示屏的SCA接在B11&#xff0c;SCL接在B10&#xff0c;串口的RX连接A9&#xff0c;TX连接A10。 新建Serial.c和Serial.h文件 在Serial.c文件中&#xff0c;实现初始化函数&#xff0c;等需要的函数&#xff0c;首先对串口进行初始化&#xff0c;只需要…

信创实力进阶,Smartbi再获华为云鲲鹏技术认证

日前&#xff0c;经华为技术有限公司评测&#xff0c;思迈特商业智能与数据分析软件Smartbi Insight V11与华为技术有限公司Kunpeng 920 Taishan 200完成并通过相互兼容性测试认证&#xff0c;成功再获华为云鲲鹏技术认证书&#xff0c;标志着Smartbi与华为云鲲鹏产业生态合作更…

http模块—http请求练习

题目要求&#xff1a;搭建如下http服务&#xff1a; 1.当浏览器向我们的服务器发送请求时&#xff0c;当请求类型是get请求&#xff0c;请求的url路径地址是/login。响应体结果是登录页面 2.当浏览器向我们的服务器发送请求时&#xff0c;当请求类型是get请求&#xff0c;请求…