














基于 Docker 的环境搭建
安装 Docker
-
卸载系统之前的 docker
1
2
3
4
5
6
7
8
9sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine -
安装依赖的包
1
sudo yum install -y yum-utils
-
配置镜像
1
2
3sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo -
安装 Docker
1
sudo yum install docker-ce docker-ce-cli containerd.io
-
启动 Docker 服务
1
sudo systemctl start docker
-
检测 Docker 是否安装成功
1
docker -v
-
查看下载镜像
1
sudo docker images
-
设置开机自启动
1
sudo systemctl enable docker
配置 Docker 镜像加速
针对 Docker 客户端版本大于 1.10.0 的用户
您可以通过修改 daemon 配置文件 /etc/docker/daemon.json 来使用加速器
-
创建目录
1
sudo mkdir -p /etc/docker
-
配置镜像加速器地址
1
2
3
4
5sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://578xeysa.mirror.aliyuncs.com"]
}
EOF -
重启 Docker 后台线程
1
sudo systemctl daemon-reload
-
重启 Docker 服务
1
sudo systemctl restart docker
安装 MySQL
-
拉取 MySQL 5.7 的镜像
1
sudo docker pull mysql:5.7
-
检查下载的镜像
1
sudo docker images
-
创建实例并启动
1
2
3
4
5
6sudo 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后台运行 -
查看 Docker 正在运行的容器
1
docker ps
-
进入容器内部
1
2
3docker exec -it mysql bin/bash
# 退出命令
exit -
查看 MySQL 位置
1
whereis mysql
-
修改 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 -
重启 MySQL
1
docker restart mysql
安装 Redis
-
拉取镜像
1
docker pull redis
-
先配置目录,注意
redis.conf是文件1
2mkdir -p /mydata/redis/conf
touch /mydata/redis/conf/redis.conf -
安装,挂载目录
1
2
3
4docker 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 -
直接进去 redis 客户端
1
docker exec -it redis redis-cli
-
配置 redis 持久化
1
vi /mydata/redis/conf/redis.conf
插入以下内容
1
appendonly yes
1
docker restart redis
-
设置 redis 容器在 Docker 启动的时候启动
1
docker update redis --restart=always
安装 Nacos
-
拉取镜像
1
docker pull nacos/nacos-server
-
安装
1
docker run -d -p 8848:8848 --env MODE=standalone --name nacos nacos/nacos-server
安装 Elasticsearch、Kibana
-
下载镜像文件
1
2
3
4
5# 存储和检索数据
docker pull elasticsearch:7.4.2
# 可视化检索数据
docker pull kibana:7.4.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 -
启动 Elasticsearch
1
2
3
4
5
6
7docker 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:指定要启动的镜像 -
设置 Elasticsearch 随 Docker 启动
1
2# 当前 Docker 开机自启,所以 ES 现在也是开机自启
docker update elasticsearch --restart=always -
启动可视化 Kibana
1
2
3
4docker run --name kibana \
-e ELASTICSEARCH_HOSTS=http://{IP地址}:9200 \
-p 5601:5601 \
-d kibana:7.4.2配置说明:
-e ELASTICSEARCH_HOSTS=http://{IP地址}:9200: 这里要设置成自己的虚拟机 IP 地址 -
浏览器输入 IP 地址:5601 测试
注意:将服务器对应端口的防火墙关闭