文章目录

  • 一、创建网络
  • 二、安装mysql主从
  • 三、安装nacos服务
  • 四、安装redis
  • 五、安装es
  • 六、安装ik分词器
  • 七、安装elasticsearch-head
  • 八、安装rabbitmq
  • 九、安装dubbo-admin
  • 十、安装skywalking
  • 十一、安装skywalking-ui
  • 十二、其他问题


一、创建网络
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 --restart=always -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 --restart=always -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
  • 此处省略了部分配置
三、安装nacos服务
#拉取镜像
docker pull nacos/nacos-server:v2.1.1
#启动服务
docker run --restart=always -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 --restart=always -d --name redis -p 6379:6379 --network network --ip 192.168.0.5 redis
五、安装es
#拉取es镜像
docker pull elasticsearch:7.7.0
#启动服务
docker run --restart=always --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
  1. 方法一
./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的问题,建议使用方法二

  1. 方法二
#将压缩包移动到容器中
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 --restart=always --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 --restart=always --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

九、安装dubbo-admin
#拉取镜像
docker pull apache/dubbo-admin
#启动服务
docker run -d --restart=always --name dubbo-admin -p 9600:8080 --ip 192.168.0.9 -e admin.registry.address=nacos://192.168.0.4:8848 -e admin.config-center=nacos://192.168.0.4:8848 -e admin.metadata-report.address=nacos://192.168.0.4:8848 --restart=always apache/dubbo-admin

退出后使用宿主机的浏览器访问 localhost:9600 即可,账号密码均为:root

十、安装skywalking
#拉取镜像
docker pull apache/skywalking-oap-server:8.7.0-es7
#启动服务
docker run --restart=always --name skywalking -d -p 11800:11800 -p 12800:12800 --ip 192.168.0.10 -e TZ=Asia/Shanghai -e JAVA_OPTS="-Xms128m -Xmx128m" -e SW_STORAGE=elasticsearch7 -e SW_NAMESPACE=docker-cluster -e SW_STORAGE_ES_CLUSTER_NODES=192.168.0.6:9200 apache/skywalking-oap-server:8.7.0-es7
十一、安装skywalking-ui
#拉取镜像
docker pull apache/skywalking-ui:8.7.0
#启动服务
docker run -d --restart=always --name skywalking-ui -p 19080:8080 -it -e SW_OAP_ADDRESS=http://192.168.0.10:12800 -e TZ=Asia/Shanghai -e JAVA_OPTS="-Xms64m -Xmx64m" apache/skywalking-ui:8.7.0
十二、其他问题
  1. Vmmem 进程(WSL2)消耗内存巨大
    解决办法:在用户目录下新建文件 .wslconfig,增加下面的配置,限制其内存占用:
[wsl2]
memory=6GB
swap=0
localhostForwarding=true
  • 内存设置太小也不行,镜像会被自动关闭。
  1. 解决docker启动时报‘Error response from daemon: network xxx not found‘问题‘