- A+
文章目录
一、创建网络
docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 network
二、安装mysql主从
#拉取mysql镜像
docker pull mysql:5.7.19
#启动mysql master
docker run -m 400m -p 3306:3306 --ip 192.168.0.2 --network network --name mysql-master -e MYSQL_ROOT_PASSWORD="root" -d mysql:5.7.19
#启动mysql slave
docker run -m 400m -p 3307:3306 --ip 192.168.0.3 --network network --name mysql-slave -e MYSQL_ROOT_PASSWORD="root" -d mysql:5.7.19
- 此处省略了部分配置,请参见我的另一篇博文《Docker安装mysql 5.7主从复制》
三、安装nacos服务
#拉取镜像
docker pull nacos/nacos-server:v2.1.1
#启动服务
docker run -d -p 8848:8848 -p 9848:9848 --name nacos --network network --ip 192.168.0.4 --env MODE=standalone --env SPRING_DATASOURCE_PLATFORM=mysql --env MYSQL_SERVICE_HOST=192.168.0.2 --env MYSQL_SERVICE_PORT=3306 --env MYSQL_SERVICE_DB_NAME=nacos --env MYSQL_SERVICE_USER=nacos --env MYSQL_SERVICE_PASSWORD=nacos nacos/nacos-server:v2.1.1
这里使用到了此前安装的mysql服务,需要在mysql上导入nacos的数据库,创建nacos账户
四、安装redis
#拉取redis最新的镜像
docker pull redis:latest
#启动服务
docker run -d --name redis -p 6379:6379 --network network --ip 192.168.0.5 redis
五、安装es
#拉取es镜像
docker pull elasticsearch:7.7.0
#启动服务
docker run --name es -d --network network --ip 192.168.0.6 -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -e "discovery.type=single-node" -p 9200:9200 -p 9300:9300 elasticsearch:7.7.0
修改配置
#需进入es容器
docker exec -it es /bin/bash
在/usr/share/elasticsearch/config
目录找到elasticsearch.yml
文件,在后面追加以下内容
http.host: 0.0.0.0
http.cors.enabled: true
http.cors.allow-origin: "*"
保存重启镜像,后面elasticsearch-head才可以连接到es。
六、安装ik分词器
#需进入es容器
docker exec -it es /bin/bash
- 方法一
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.7.0/elasticsearch-analysis-ik-7.7.0.zip
方法一经常会遇到访问不了github.com的问题,建议使用方法二
- 方法二
#将压缩包移动到容器中
docker cp elasticsearch-analysis-ik-7.7.0.zip es:/usr/share/elasticsearch/plugins
#进入容器
docker exec -it es /bin/bash
#进入目录
cd /usr/share/elasticsearch/plugins
#创建ik目录
mkdir ik
#解压文件到ik目录中
unzip elasticsearch-analysis-ik-7.7.0.zip ik/
#删除压缩包,注意一定要把压缩包删除!不然容器会启动不了
rm -rf elasticsearch-analysis-ik-7.7.0.zip
七、安装elasticsearch-head
#拉取镜像
docker pull mobz/elasticsearch-head:5
#启动服务
docker run -d --name es-head --network network --ip 192.168.0.7 -p 9100:9100 mobz/elasticsearch-head:5
修改配置
#进入容器
docker exec -it es-head /bin/bash
elasticsearch-head调用方式默认为 application/x-www-form-urlencoded
,创建elasticsearch索引时会报错,需要修改为application/json
# 修改elasticsearch-head容器内的vendor.js文件
cd /usr/src/app/_site
# 把 application/x-www-form-urlencoded 改成 application/json;charset=UTF-8
sed -i 's#application/x-www-form-urlencoded#application/json;charset=UTF-8#g' vendor.js
修改完,重启镜像
八、安装rabbitmq
#拉取镜像
docker pull rabbitmq
#启动服务
docker run -id --network network --ip 192.168.0.8 --name rabbitmq -p 15672:15672 -p 5672:5672 rabbitmq
修改配置
#进入容器
docker exec -it rabbitmq /bin/bash
#开启管理界面
rabbitmq-plugins enable rabbitmq_management
退出后使用宿主机的浏览器访问 localhost:15672
即可,账号密码均为:guest
九、其他问题
- Vmmem 进程(WSL2)消耗内存巨大
解决办法:在用户目录下新建文件 .wslconfig,增加下面的配置,限制其内存占用:
[wsl2]
memory=6GB
swap=0
localhostForwarding=true
- 内存设置太小也不行,镜像会被自动关闭。