基于 Docker 的环境搭建

安装 Docker

  1. 卸载系统之前的 docker

    1
    2
    3
    4
    5
    6
    7
    8
    9
    sudo yum remove docker \
    docker-client \
    docker-client-latest \
    docker-common \
    docker-latest \
    docker-latest-logrotate \
    docker-logrotate \
    docker-engine

  2. 安装依赖的包

    1
    sudo yum install -y yum-utils
  3. 配置镜像

    1
    2
    3
    sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
  4. 安装 Docker

    1
    sudo yum install docker-ce docker-ce-cli containerd.io
  5. 启动 Docker 服务

    1
    sudo systemctl start docker
  6. 检测 Docker 是否安装成功

    1
    docker -v
  7. 查看下载镜像

    1
    sudo docker images
  8. 设置开机自启动

    1
    sudo systemctl enable docker

配置 Docker 镜像加速

针对 Docker 客户端版本大于 1.10.0 的用户

您可以通过修改 daemon 配置文件 /etc/docker/daemon.json 来使用加速器

  1. 创建目录

    1
    sudo mkdir -p /etc/docker
  2. 配置镜像加速器地址

    1
    2
    3
    4
    5
    sudo tee /etc/docker/daemon.json <<-'EOF'
    {
    "registry-mirrors": ["https://578xeysa.mirror.aliyuncs.com"]
    }
    EOF
  3. 重启 Docker 后台线程

    1
    sudo systemctl daemon-reload
  4. 重启 Docker 服务

    1
    sudo systemctl restart docker

安装 MySQL

  1. 拉取 MySQL 5.7 的镜像

    1
    sudo docker pull mysql:5.7
  2. 检查下载的镜像

    1
    sudo docker images
  3. 创建实例并启动

    1
    2
    3
    4
    5
    6
    sudo docker run -p 3306:3306 --name mysql \
    -v /mydata/mysql/log:/var/log/mysql \
    -v /mydata/mysql/data:/var/lib/mysql \
    -v /mydata/mysql/conf:/etc/mysql \
    -e MYSQL_ROOT_PASSWORD=root \
    -d mysql:5.7

    配置说明:
    -p 3306:3306 将容器的 3306 端口映射到主机的 3306 端口
    --name 指定容器名字
    -v目录挂载
    -e设置 mysql 参数,初始化 root 用户的密码
    -d后台运行

  4. 查看 Docker 正在运行的容器

    1
    docker ps
  5. 进入容器内部

    1
    2
    3
    docker exec -it mysql bin/bash
    # 退出命令
    exit
  6. 查看 MySQL 位置

    1
    whereis mysql
  7. 修改 MySQL 配置文件

    1
    vi /mydata/mysql/conf/my.cnf
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    [client]
    default-character-set=utf8
    [mysql]
    default-character-set=utf8
    [mysqld]
    init_connect='SET collation_connection = utf8_unicode_ci'
    init_connect='SET NAMES utf8'
    character-set-server=utf8
    collation-server=utf8_unicode_ci
    skip-character-set-client-handshake
    skip-name-resolve
  8. 重启 MySQL

    1
    docker restart mysql

安装 Redis

  1. 拉取镜像

    1
    docker pull redis
  2. 先配置目录,注意 redis.conf 是文件

    1
    2
    mkdir -p /mydata/redis/conf
    touch /mydata/redis/conf/redis.conf
  3. 安装,挂载目录

    1
    2
    3
    4
    docker run -p 6379:6379 --name redis \
    -v /mydata/redis/data:/data \
    -v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
    -d redis redis-server /etc/redis/redis.conf
  4. 直接进去 redis 客户端

    1
    docker exec -it redis redis-cli
  5. 配置 redis 持久化

    1
    vi /mydata/redis/conf/redis.conf

    插入以下内容

    1
    appendonly yes
    1
    docker restart redis
  6. 设置 redis 容器在 Docker 启动的时候启动

    1
    docker update redis --restart=always

安装 Nacos

  1. 拉取镜像

    1
    docker pull nacos/nacos-server
  2. 安装

    1
    docker run -d -p 8848:8848 --env MODE=standalone --name nacos nacos/nacos-server

安装 Elasticsearch、Kibana

  1. 下载镜像文件

    1
    2
    3
    4
    5
    # 存储和检索数据
    docker pull elasticsearch:7.4.2

    # 可视化检索数据
    docker pull kibana:7.4.2
  2. 配置挂载数据文件夹

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    # 创建配置文件目录
    mkdir -p /mydata/elasticsearch/config

    # 创建数据目录
    mkdir -p /mydata/elasticsearch/data

    # 将/mydata/elasticsearch/文件夹中文件都可读可写
    chmod -R 777 /mydata/elasticsearch/

    # 配置任意机器可以访问 elasticsearch
    echo "http.host: 0.0.0.0" >/mydata/elasticsearch/config/elasticsearch.yml
  3. 启动 Elasticsearch

    1
    2
    3
    4
    5
    6
    7
    docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \
    -e "discovery.type=single-node" \
    -e ES_JAVA_OPTS="-Xms64m -Xmx512m" \
    -v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
    -v /mydata/elasticsearch/data:/usr/share/elasticsearch/data \
    -v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
    -d elasticsearch:7.4.2

    配置说明:
    -p 9200:9200 -p 9300:9300:向外暴露两个端口,9200 用于 HTTP REST API 请求,9300 ES 在分布式集群状态下 ES 之间的通信端口;
    -e "discovery.type=single-node":es 以单节点运行
    -e ES_JAVA_OPTS="-Xms64m -Xmx512m":设置启动占用内存,不设置可能会占用当前系统所有内存
    -v:挂载容器中的配置文件、数据文件、插件数据到本机的文件夹;
    -d elasticsearch:7.6.2:指定要启动的镜像

  4. 设置 Elasticsearch 随 Docker 启动

    1
    2
    # 当前 Docker 开机自启,所以 ES 现在也是开机自启
    docker update elasticsearch --restart=always
  5. 启动可视化 Kibana

    1
    2
    3
    4
    docker run --name kibana \
    -e ELASTICSEARCH_HOSTS=http://{IP地址}:9200 \
    -p 5601:5601 \
    -d kibana:7.4.2

    配置说明:
    -e ELASTICSEARCH_HOSTS=http://{IP地址}:9200: 这里要设置成自己的虚拟机 IP 地址

  6. 浏览器输入 IP 地址:5601 测试

    注意:将服务器对应端口的防火墙关闭