当前位置: 首页 > article >正文

02. 开发前准备,Docker安装MySQL,Redis

这个专栏意在实战,所以更偏向于动手,不会讲太多原理性的问题,如有疑问,可私信或评论区讨论。

接下来的操作都是基于 Linux上完成的(线上环境基本都是基于Linux),我这里用的是 CentOS7,你可以选择云服务,也可以自己搭建虚拟机,虚拟机搭建具体步骤,可以参考这篇 https://blog.csdn.net/qq_34709175/article/details/141427085,这里我只列出关键步骤。
如果你已经有现成的环境了,请直接从第3步开始,不用浪费时间看前面的了🤭。

1. 安装虚拟机软件 VirtualBox

参考这篇文档,完成安装即可 https://blog.csdn.net/qq_34709175/article/details/141427085
安装完成后打开,可看到如下界面
image.png

2. 使用 Vagrant 快速搭建Linux环境

Vargrant 打的口号就是 “Development Environments Made Easy”开发环境变得更简单。

2.1 安装 Vagrant ,拉取镜像

官网下载:https://developer.hashicorp.com/vagrant

下载好根据指引安装好即可

镜像仓库:https://app.vagrantup.com/boxes/search

接下来我们去镜像仓库,找到自己需要的镜像,就可以快速完成环境搭建了。

image.png

点击进入详情页面,复制命令,去 CMD 窗口执行即可,这里要注意执行的路径,默认会把 Vagrantfile 下载到你执行命令的路径下,所以要注意一下

image.png

初始化

vagrant init centos/7

初始化完成后,会下载一个 Vagrantfile 文件。其实这个就是 New 前面的 Vagrantfile,我们也可以自己新建一个同名文件,把内容复制粘贴进去就行。

image.png

看到如下界面表示初始化完成

image.png

拉起

vagrant up

下载可能比较耗时,耐心等待

完成后,打开 **VirtualBox **发现虚拟机已经关联上了

image.png
在开始搭建环境前还有些准备工作要做

2.2 配置网络

这里我使用仅主机模式,比较简单,不同模式的区别,后面有时间再整理一下

image.png

选择仅主机模式后,点击确定即可。

这个时候去查看一下当前电脑网络配置

image.png

我们找一下以太网适配器,还记得刚刚让扫一眼的那个吗? 那个就是我们要找的适配器,我之前安装过WMware,所以发现这里有两个,一个没有名字的,一个 VMware Network Adapter VMnet1,我们要选择由** VirtualBox** 生成的**,**那除了这个 WMware 的剩下的那个应该就是的了,我这里就是192.168.56.1。

如果你想要验证一下 ,可以打开网络设置,一眼就看到了 VirtualBox Host-Only Ethernet Adapter


然后修改我们的 Vagrantfile ,这样在虚拟机拉起的时候会自动配置好虚拟机的 IP地址。

注意网段,这里只能是 192.168.56.1 - 192.168.56.255

验证一下是否设置成功

vagrant up 或者 vagrant reload 重启一下虚拟机

连接上虚拟机,vagrant ssh

之前忘记说了这里要留意一下,ssh的账号和密码image.png

和本地互相 ping 一下,发现可以正常 ping

image.png

再用虚拟机 ping 一下外网,百度,测试也正常

image.png

到这里,网络配置就完成了,我们的虚拟机就可以正常使用了。

2.3 使用 xshell 连接

默认用户名为 vagrant
这里需要 publicKey 他就在我们拉起时 Vagrantfile 所在的目录下
我的在这里 D:\virtualBox\vagrant.vagrant\machines\default\virtualbox

这样我们就完成连接

2.4 修改虚拟机yum源,方便后续下载包

先备份

 sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

下载国内yum源配置文件到/etc/yum.repos.d/CentOS-Base.repo

sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

下载不下来直接去修改 CentOS-Base.repo 内容全覆盖成下面这个

# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client.  You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the 
# remarked out baseurl= line instead.
#
#
 
[base]
name=CentOS-$releasever - Base - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
        http://mirrors.aliyuncs.com/centos/$releasever/os/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
 
#released updates 
[updates]
name=CentOS-$releasever - Updates - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/
        http://mirrors.aliyuncs.com/centos/$releasever/updates/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
 
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/extras/$basearch/
        http://mirrors.aliyuncs.com/centos/$releasever/extras/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
 
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/centosplus/$basearch/
        http://mirrors.aliyuncs.com/centos/$releasever/centosplus/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
 
#contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/contrib/$basearch/
        http://mirrors.aliyuncs.com/centos/$releasever/contrib/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7


清理 yum 缓存并更新

sudo yum clean all
sudo yum makecache
sudo yum update

下载可能比较耗时,耐心等待吧!这个装完以后我们的基础环境就弄好啦!

3. 安装Docker环境

官网地址:https://www.docker.com/
安装介绍:https://docs.docker.com/engine/install/centos/
建议参考官网

3.1 卸载本地老版本

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

3.2 设置仓库

国内已经无法正常安装,使用阿里云镜像仓库,安装
首先修改 /etc/sysctl.conf 开启ipv4转发

net.ipv4.ip_forward=1

安装一些工具包

yum install -y yum-utils device-mapperpersistent-data lvm2

添加阿里云 Docker 镜像仓库

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

更新 yum 缓存

yum makecache fast

3.3 安装docker Engine

yum -y install docker-ce

启动

systemctl start docker

查看版本

docker version

配置阿里云镜像仓库
阿里云官网搜 容器镜像服务 https://www.aliyun.com/search?k=%E5%AE%B9%E5%99%A8%E9%95%9C%E5%83%8F%E6%9C%8D%E5%8A%A1
image.png
立即开通 支付宝账号登录就行
image.png
点击个人版本
image.png
创建个人版
image.png
点击查看镜像加速器
image.png
跟着文档操作即可

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://hs5yecpy.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

可能你看到篇文章的时候阿里的也GG了,这里还有些其他大佬提供的镜像源。可以都加上试试。或者自己百度一下。

{
  "registry-mirrors" : [
    "https://dockerhub.icu",
    "https://docker.chenby.cn",
    "https://docker.1panel.live",
    "https://docker.awsl9527.cn",
    "https://docker.anyhub.us.kg",
    "https://dhub.kubesre.xyz"
  ]
}

设置 Docker 服务开机自启动

sudo systemctl enable docker

4. 数据库 MySQL 安装

https://hub.docker.com/search?q=mysql

  • 下载镜像文件(当前默认下载latest版本已经是9.0版本,根据自己情况下载)
docker pull mysql:8.4.2
docker run -itd --name mysql \
 -p 3306:3306 \
 -e MYSQL_ROOT_PASSWORD=123456 mysql:8.4.2
  • 将需要挂载的文件夹,复制配置文件,具体看你自己容器内的地址,有的 my.cnf 可能在 /etc/下
mkdir -p /mydata/mysql/{conf,logs,data,mysql-files}
docker cp mysql:/etc/mysql/my.cnf /mydata/mysql/conf/my.cnf 
docker cp mysql:/etc/mysql/conf.d /mydata/mysql/conf/conf.d

:::success
这里有个小坑,一定不要随便修改配置文件的权限,否则会导致配置不生效。我当时就是 chmod 777 ,然后怎么弄都没生效,然后看日志提示一点点解决的。
:::

  • 删除容器
docker stop mysql8
docker rm mysql8
  • 重新运行容器并挂载
docker run -itd --name mysql8 \
                 -p 3306:3306 \
                 -v /mydata/mysql/conf:/etc/mysql \
                 -v /mydata/mysql/logs:/logs \
                 -v /mydata/mysql/data:/var/lib/mysql \
                 -v /mydata/mysql/mysql-files:/var/lib/mysql-files \
                 -e MYSQL_ROOT_PASSWORD=root@123456 mysql:8.4.2 
  • 配置开机自启
docker update --restart=always  mysql8
  • 根据实际情况做一些配置上的调整(无特殊要求直接跳过这一步)
[mysqld]
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
datadir         = /var/lib/mysql

max_allowed_packet= 1024M
secure-file-priv= NULL
wait_timeout=86400
interactive_timeout=86400
default-time_zone='+8:00'
default-authentication-plugin=mysql_native_password
sql_mode =STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
skip-name-resolve
# Custom config should go here
!includedir /etc/mysql/conf.d/

image.png

5. 安装 Redis

默认最新版本 6.2.6

docker pull redis
mkdir -p /mydata/redis/conf
touch /mydata/redis/conf/redis.conf
docker run  --name redis \
             -p 6379:6379 \
             -v /mydata/redis/data:/data \
             -v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
             -d redis redis-server /etc/redis/redis.conf
                  

编辑 redis.conf 开启持久化

## 开启持久化
appendonly yes

使用可视化工具连接测试,有很多,根据自己喜好选一个就行
官方支持:https://redis.io/thank-you/redisinsight-the-best-redis-gui-35/
开源支持:https://goanother.com/cn/

以上只适用于学习时快速搭建,不适用于线上正式项目,线上数据库最好还是专项专用,部署在专门的服务器上,避免产生数据安全以及性能问题。


http://www.kler.cn/news/283156.html

相关文章:

  • SpringBoot优雅的封装不同研发环境下(环境隔离)RocketMq自动ack和手动ack
  • python实战二-筛选多个Excel中数据
  • 深度学习论文被评“创新性不足、工作量不够”怎么办?
  • Java毕业设计 基于SSM校园心理咨询服务平台
  • 应对Nginx负载均衡中的请求超时:策略与配置
  • HTTPS 通信时是对称加密还是非对称加密?
  • 基于SpringBoot的医疗服务系统
  • 贝塞尔曲线
  • uniapp小程序怎么判断滑动的方向
  • Redis—基础篇
  • 如何让大模型学会自我反思
  • VMware安装Ubuntu 23.10.1系统图文版
  • Yolo环境搭建(深度学习基础环境)
  • 在Docker中,本地的镜像文件都存放在哪里?
  • 数据安全守护者:精通数据备份与恢复的艺术
  • 优化大型语言模型微调:MoLA层级专家分配策略
  • CSS3 3D 转换
  • HarmonyOS鸿蒙开发( Beta5版)Navigation组件常规加载与动态加载
  • Ubuntu 20.04 源码编译安装OpenCV 4.5.0
  • C++:继承用法详解~
  • 从挫败到精通:三步克服编程学习的难关
  • 【Leetcode 2206 】 将数组划分成相等数对 —— 哈希表与数组模拟哈希表
  • Elasticsearch 中,term 查询和 match 查询的区别
  • JavaScript常见知识点总结
  • 搜维尔科技:‌XSENS高精度惯性动作捕捉系统,人形机器人Al训练专用设备
  • 华为HCIP-datacom 真题 (2024年下半年最新题库)
  • Vue + Spring Boot + SQL Server + Python 部署到 Windows 服务器
  • 最长公共子序列
  • 卡牌抽卡机小程序搭建,探索新鲜有趣的拆卡体验
  • 介绍几种常用的排序算法