码神之路博客部署教程【完整版】基于Linux的Docker部署教程非常详细

这篇博客详细记录了如何在Linux环境下使用Docker部署MySQL、Redis,并构建和运行SpringBoot后端及前端应用。通过Docker-compose实现服务编排,确保项目有序启动。此外,博主还分享了在部署过程中遇到的问题和解决方案,适合初学者参考。
摘要由CSDN通过智能技术生成

说明

  • 前记:最近跟着哔站码神之路做了一个SpringBoot练手项目,第一次操作碰到了很多困难和问题,尤其是在部署部分,走了很多弯路,这里写下自己的部署过程,供大家参考,也欢迎大家提出宝贵的意见。
  • 哔站码神视频链接:https://www.bilibili.com/video/BV1Gb4y1d7zbp=36
  • 我的网站:www.zhangshidi.space(可能过一段时间会更新为其他内容哈~ 我的网站已经下线有一段时间了,服务器另做他用)
  • 创作不易,希望大家走过路过点个赞。
  • 一些指令可能会出错,大家可以结合手动操作的方式进行(比如,我看的教程中用mkdir创建文件比如blog.conf,但是文件格式有问题,总是会带有一个后缀比如blog.conf.swp什么的,然后我就在左边文件目录手动新建文件,后来发现touch新建文件可以成功;mkdir用来创建文件夹比较好)

前置知识

  • 以下知识点希望大家首先搜一搜,读一读,有一个大概的了解。
    • 什么是Linux以及掌握Linux的一些基本指令。
    • 什么是docker,docker部署的原理
    • 什么是nginx
  • 我们要做哪些事情
    • 将vue前端项目打包到云服务器
    • 将springboot后端项目(主网页,下面称为app)(后台管理系统,下面称为admin)打包到云服务器
    • 利用docker部署mysql,redis,ngix,app,admin。然后用docker-compose进行一个服务编排,使得项目分次序启动。

文件目录

  • 如果完全按照我的思路,大家可以对照着我的文件目录,检查哪里是不是文件没有搞对。在这里插入图片描述

1 环境准备:服务器购买(以及域名)

  • 基本环境(云服务器及域名)–提前做
  • 我的云配置:阿里云1核 2 GiB服务器+腾讯云域名。
  • 云服务器相当于我们的第二台电脑,不过他处于云端,因为他在云端的关系,我们可以随意的蹂躏他,发生了比较麻烦的问题可以直接重装系统,不会对我们的电脑本身造成影响。
    • 首先,我们需要一个云服务器,那就需要去购买一个云服务器,如果需要域名的话那就需要购买一个域名,并且完成域名与云服务器Ip地址的绑定(解析)。如果不用域名暂时用Ip地址的话也是可以的。
    • 需要提前做的原因:因为域名是需要备案的,据说备案时间长的可能达到一个星期,我的(在腾讯云购买的普通域名-十年180)还好,一天就备案完成了。云服务器是去年2021年双十一的阿里云活动购买的。至于哪家好哪家不好,我觉得应该差不多吧,我是挑的便宜的买的。
    • 购买服务器之后需要在服务器上安装linux系统,我选择的是centoS 7.8版本。
    • 然后对于这台云服务器的使用,我们可以直接在云服务器上输入指令|也可以用第三方工具,比如Xshell。(我用的就是xshell,bug少一点,也更加流畅)
    • 以上步骤请大家自行搜索。
    • 完成这些步骤后有一个非常重要的事情就是开放端口,阿里云的话就是在配置安全组规则里,比如我们要用的8888端口,redis端口,数据库端口啥的,不然可能无法访问。
      在这里插入图片描述

2 Docker安装

  • 我对docker的理解,docker可以理解为一个容器,相当于一个更加微型的linux系统,我们可以在里面部署各种环境和配置。
    • docker的更加具体的知识,咱们可以参考这篇文章:https://blog.csdn.net/weixin_46628200/article/details/106668209

开始安装

  • 首先进入我们的云服务器管理面板-远程连接,可以看到这样空荡荡的页面,随后我们在这里输入各种命令。云服务器操作界面- 我们注意到,左上角有两个符号,一个是【新建命令窗口】;一个是【可视化查看文件】,这就和我们平常查看文件差不多了。有时候懒得用复制指令也可以直接在文件里移动。常用操作快

docker安装

  • 将以下一连串的命令逐步输入到你的命令窗口中

    1、yum 包更新到最新

    yum update

    2、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

    yum install -y yum-utils device-mapper-persistent-data lvm2

    3、 设置yum源

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

    4、 安装docker,出现输入的界面都按 y

    yum install -y docker-ce

    5、 查看docker版本,验证是否验证成功

    docker -v
    #启动docker
    /bin/systemctl start docker.service

docker安装及启动
拉取docker镜像

  • docker镜像可以理解为普通的镜像,利用docker镜像来创建我们的docker容器。

  • 依旧是在命令窗口输入以下指令

    docker pull nginx
    docker pull redis:5.0.3
    docker pull java:8
    docker pull mysql:5.7

3 docker配置mysql

  • 接下来,我会把云服务器统称为宿主机。

思路:构建一个docker来配置MySQL;并将mysql数据文件布置到宿主机中,稍微麻烦一些,但是安全性得以提高

配置mysql之前,希望大家先在自己的宿主机上安装MySQL,linux上保姆级的mysql安装教程,跟着做就可以了。
之所以这么做,是因为我希望将mysql数据存储在宿主机上,docker中只是配置一个mysql环境,如果将数据库文件存储在docker上,一旦删除容器(通过rm指令),所有的数据文件都会消失,很不安全。

  • 建立宿主机上的MySQL目录(创建文件夹指令mkdir,cd是切换目录指令)

    mkdir -p /mnt/docker/mysql
    cd /mnt/docker/mysql

  • 继续在命令窗口运行以下指令

    • 其中run有着[创建并运行]mysql容器的作用
    • -p是建立宿主机3307端口与容器3306端口的映射
    • -v是生成挂载目录,挂载可以理解为共享/同步一个文件目录,冒号前的目录是宿主机目录,冒号后为docker中的MySQL数据目录,即使docker被删除,数据仍然可以保留到宿主机的目录中
      • 值得一提的是 码神的笔记中挂载了三个目录,分别是配置文件,日志,数据文件。我在实际操作中日志一直出错,所以干脆只配置最重要的数据文件
    • 下一步则是指定宿主机MySQL的默认密码,不设置默认密码可能会报错。

    docker run -id
    -p 3307:3306
    –name=mysql
    -v /mnt/docker/mysql/data:/var/lib/mysql
    -e MYSQL_ROOT_PASSWORD=root
    mysql:5.7

利用挂载来映射文件

接下来我们需要进入容器,开放权限

  • docker ps 查看容器是否已经运行
    • 应该可以看到mysql5.7的容器已经在运行
  • 进入
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在使用Hexo搭建博客并将其部署到Gitee的过程中,你需要进行一些修改以确保正确的部署。 首先,你需要在_config.yml文件中找到deploy配置部分。在这里,你需要对deploy进行如下修改: ``` deploy: - type: git repo: https://gitee.com/你的用户名/你的仓库名.git branch: master ``` 将上述代码中的"你的用户名"替换为你在Gitee上的用户名,并将"你的仓库名"替换为你的博客仓库在Gitee上的名称。 接下来,你需要将你的博客同时部署到GitHub,以便在无法访问Gitee时,仍可通过GitHub访问你的博客。在_config.yml文件的deploy配置中,添加以下代码: ``` - type: git repo: https://github.com/你的用户名/你的仓库名.git branch: master ``` 同样,将上述代码中的"你的用户名"替换为你在GitHub上的用户名,并将"你的仓库名"替换为你的博客仓库在GitHub上的名称。 完成以上修改后,保存并关闭_config.yml文件。接下来,你可以通过运行命令`hexo deploy`将你的博客部署到Gitee和GitHub。 请注意,部署到Gitee相对于GitHub可能会稍微麻烦一些,因为你需要手动去Gitee的网站上更新一次才能看到更新效果。这是因为Gitee是国内版的GitHub,速度相对较快,但在部署时需要手动同步。<span class="em">1</span><span class="em">2</span> #### 引用[.reference_title] - *1* [搭建hexo博客——Gitee篇](https://blog.csdn.net/qq_939317133/article/details/124046319)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* [hexo博客同时部署gitee和github,搭建镜像站](https://blog.csdn.net/liegu0317/article/details/123058346)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值