使用docker快速安装开发环境

  • A+
所属分类:docker 编程使用技巧

一、创建网络
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
三、安装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
  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 --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

九、其他问题
  1. Vmmem 进程(WSL2)消耗内存巨大
    解决办法:在用户目录下新建文件 .wslconfig,增加下面的配置,限制其内存占用:
[wsl2]
memory=6GB
swap=0
localhostForwarding=true
  • 内存设置太小也不行,镜像会被自动关闭。
w3cjava