服务器要求

下面的建议不包含minio的内存占用,如需使用minio,请另外考虑

  1. 核心数和内存大小有两种方案:

    • 2核4G(使用ES搜索策略)
    • 2核2G(使用MySQL搜素策略)
  2. 带宽大小有两种方案:

    • 使用oss对带宽没有要求(本人亲测:1M带宽+oss 访问速度很快)
    • 使用minio需要大一点的带宽(小带宽也可以,但需要使用cdn加速)

docker的安装

以下命令基于CentOS环境。

  1. 下载工具

          yum install -y yum-utils
        
  2. 设置镜像的仓库

          yum-config-manager \
        --add-repo \
        https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo  #配置阿里云的镜像
        
  3. 更新yum软件包索引

          yum makecache fast
        
  4. 安装docker相关配置

          yum install -y docker-ce docker-ce-cli containerd.io
        
  5. 启动docker

          systemctl start docker
    # 查看当前版本号,是否启动成功
    docker version
    # 设置开机自启动
    systemctl enable docker
        

安装mysql

方式1: 无挂载模式

这种方式直接运行mysql之后,所有关于mysql的内容都在容器中,后续如果需要修改mysql的内容,需要手动进入容器内进行操作。且在宿主机上无备份,一旦容器被删除,数据也会被删除。

      docker pull mysql //下载MySQL镜像
docker run --name mysql --restart=always -p 3306:3306 -e MYSQL_ROOT_PASSWORD=密码 -d mysql //启动MySQL
    

方式2: 数据卷挂载模式

无挂载模式相对,通过数据卷挂载的方式运行容器,将容器内的部分重要文件映射到宿主机上。直接操作宿主机对应的映射文件就能和容器内作同步,方便操作的同时还能保证容器内的数据在宿主机上有一个备份。

下面的命令分别对mysql的日志文件、配置文件、数据文件进行了映射,你也可以自己修改。

  1. docker方式

          docker run -d -p 3306:3306 --restart=always -v /auroras/mysql/log:/var/log/mysql -v /auroras/mysql/data:/var/lib/mysql -v /auroras/mysql/conf:/etc/mysql/conf.d  -e MYSQL_ROOT_PASSWORD=密码  --name mysql mysql
        
  2. Dockerfile方式

    创建Dockerfile文件

      # 使用官方MySQL8.0.34镜像作为基础映像
FROM mysql:8.0.34

RUN rm -f /etc/localtime \
&& ln -sv /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& echo "Asia/Shanghai" > /etc/timezone

# 设置MySQL的root用户密码(根据需要进行更改)
ENV MYSQL_ROOT_PASSWORD=xxxxxx

# 暴露MySQL默认端口(3306)和33060端口
EXPOSE 3306 33060

# 创建数据卷用于持久化存储MySQL数据、日志和配置
VOLUME /var/log/mysql
VOLUME /var/lib/mysql
VOLUME /etc/mysql/conf.d
    

​ 创建启动文件mysql-start.sh

      SOURCE_PATH=/usr/local/mysql
SERVER_NAME=mysqlimage
TAG=latest
SERVER_PORT=3306
CID=$(docker ps | grep "$SERVER_NAME" | awk '{print $1}')
IID=$(docker images | grep "$SERVER_NAME" | awk '{print $3}')
if [ -n "$CID" ]; then
  echo "存在容器$SERVER_NAME,CID-$CID"
  docker stop $CID
  echo "成功停止容器$SERVER_NAME,CID-$CID"
  docker rm $CID
  echo "成功删除容器$SERVER_NAME,CID-$CID"
fi
if [ -n "$IID" ]; then
  echo "存在镜像$SERVER_NAME:$TAG,IID=$IID"
  docker rmi $IID
  echo "成功删除镜像$SERVER_NAME:$TAG,IID=$IID"
fi
echo "开始构建镜像$SERVER_NAME:$TAG"
cd $SOURCE_PATH
docker build -t $SERVER_NAME:$TAG .
echo "成功构建镜像$SERVER_NAME:$TAG"
docker run -d -p 3306:3306 -p 33060:33060 --restart=always -v /codegen/mysql/log:/var/log/mysql -v /codegen/mysql/data:/var/lib/mysql -v /codegen/mysql/conf:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=xxxxxx --name mysql mysqlimage
echo "成功创建并运行容器$SERVER_NAME"
    

安装redis

      docker pull redis //下载Redis镜像
docker run --name redis  --restart=always -p 6379:6379 -d redis --requirepass "密码" //启动Redis
    

安装rabbitmq

      docker pull rabbitmq:management //下载RabbitMQ镜像
docker run --name rabbit --restart=always -p 15672:15672 -p 5672:5672  -d  rabbitmq:management   //启动RabbitMQ,默认guest用户,密码也是guest。
    

安装elasticsearch

      docker pull elasticsearch:7.9.2
    
      mkdir -p  /home/elasticsearch/data/ 
mkdir -p  /home/elasticsearch/config/
    
  1. 编写配置文件

          echo 'http.host: 0.0.0.0
    http.cors.enabled: true
    http.cors.allow-origin: "*" '>>/home/elasticsearch/config/elasticsearch.yml
        
  2. 修改文件夹权限

          chmod -R 777 /home/elasticsearch/
    ls -l # 查看文件权限
        
  3. 启动elasticseach镜像

          docker run --name elasticsearch -p 9200:9200 \
     -p 9300:9300 \
     -e "discovery.type=single-node" \
     -e ES_JAVA_OPTS="-Xms64m -Xmx128m" \
      -v /home/elasticsearch/config/elasticsearch.yml:/usr/shellare/elasticsearch/config/elasticsearch.yml \
     -v /home/elasticsearch/data:/usr/shellare/elasticsearch/data \
     -v /home/elasticsearch/plugins:/usr/shellare/elasticsearch/plugins \
     -d elasticsearch:7.9.2
        

接下来我们就是拿浏览器访问啦。

在浏览器上输入:服务器IP地址:9200

可能出现的问题:

加载中...

声明

作者: liyao

版权:本博客所有文章除特别声明外,均采用CCBY-NC-SA4.O许可协议。转载请注明!

最后更新于 2026-02-18 18:15 history