一、创建网络
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
- 此处省略了部分配置,请参见我的另一篇博文《Docker安装mysql 5.7主从复制》
三、安装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
方法一
./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 --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
十二、其他问题
- Vmmem 进程(WSL2)消耗内存巨大
解决办法:在用户目录下新建文件 .wslconfig,增加下面的配置,限制其内存占用:[wsl2] memory=6GB swap=0 localhostForwarding=true
- 内存设置太小也不行,镜像会被自动关闭。
- 解决docker启动时报‘Error response from daemon: network xxx not found‘问题‘
看这一篇 https://developer.aliyun.com/article/1292397?spm=a2c6h.13262185.profile.18.1dceedc2iuBeiZ