文章目录
写在前面的话
每个人需求不一定一样
每个人环境也不一定一样
我只是希望简单快速的在windows上用docker开启一堆服务: es mysql redis mq…
水平有限,有错误也是正常情况
windows安装wsl2
打开WSL功能
下载 WSL2 升级包并安装
WSL2 Linux kernel update package for x64 machines
安装完之后在cmd或是powershell中使用wsl或bash命令进入wsl终端
wsl -l -v
安装docker desktop
在官网下载安装包并安装
在配置文件里把镜像地址改了:
也可以手动编辑这个文件,这个文件是
/etc/docker/daemon.json (linux)
C:\Users\currentUser.docker\daemon.json
{
"registry-mirrors": [
"http://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn",
"https://YOUR_OWN_URL.mirror.aliyuncs.com"
],
"insecure-registries": [],
"debug": false,
"experimental": false,
"features": {
"buildkit": true
},
"builder": {
"gc": {
"enabled": true,
"defaultKeepStorage": "20GB"
}
}
}
其中,YOUR_OWN_URL是登录阿里云控制台,并打开镜像加速器页面之后申请的
一些有用的信息
wsl2安装完之后默认安装两个“子系统发行版”:
docker-desktop (这个是默认的)
docker-desktop-data
如果想用其他的发行版本:
wsl -l -o 会打印所有能直接安装的发行版
wsl --install -d ubuntu 安装ubuntu发行版
我这里不需要用wsl安装其他发行版,因为我只需要docker desktop能运行就够了,后面有需要再安装centos
wsl的配置文件默认存放位置:C:\Users\Administrator.wslconfig
这个配置文件的配置项及解释:https://docs.microsoft.com/en-us/windows/wsl/wsl-config#configure-global-options-with-wslconfig
docker重要的配置文件是C:\Users\Administrator.docker\daemon.json
这个配置文件的配置项及解释:https://docs.docker.com/engine/reference/commandline/dockerd/
docker-desktop和docker-desktop-data所用到的虚拟机文件应该是:C:\Users\Administrator\AppData\Local\Docker\wsl\data\ext4.vhdx
在浏览器中打开\wsl$\docker-desktop-data或docker-desktop可以直接访问虚拟机里的文件
wsl安装centos
据说,通过
docker pull centos:7
docker ps
docker export 078dac12ae11 > centos7.tar
wsl --import centos7 D:\centos7 D:\centos7.tar
就可以把centos安装到wsl里
我这在最后一步始终报错:未指定的错误,网上有其他人成功安装了,可能是我环境的问题,没有继续折腾了
因为centos对我来说不是必要的,实在不行用docker来启动就行了,当然没有wsl那么方便
更新:使用他人打包好的程序可以直接安装centos8-stream:
大神打包好的centos
es介绍
传统关系型数据库与es的对比:
在es中,一切都是JSON
在es中,一个节点也是集群,默认集群的名称就是elasticsearch
传统关系型数据库 | es | 说明 |
---|---|---|
databases | slices(索引) | |
tables | types | 渐渐要被弃用 |
rows | documents | 和mango-db类型? |
columns | fields |
es集群中可以包含多个索引(数据库),每个索引中可以包含多个类型(表),每个类型又包含多个文档(行),每个文档中包含多个字段(列):
物理设计:
es在后台把每个索引划分成多个分片,每个分片可以在集群中不同的服务器之间迁移。
逻辑设计:
一个索引类型中,包含多个文档,当我们索引一篇文档时,可以通过这样的一个顺序找到它:索引>类型>文档>文档ID。通过这个组合我们就能索引到某个具体的文档,注意ID不一定是整数,实际上它是个字符串。
文档
es是面向文档的,那么意味着索引和搜索数据的最小单位是文档,es中,文档有几个重要属性:
- 自我包含:一篇文章同时包含字段和对应的值,也就是同时包含key:value
- 可以是层次型的,一个文档中包含自文档,复杂的逻辑实体就是
es 下载安装
单机版es下载安装
下载解压即用:
bin/
config/
lib/
modules/
plugins/
logs/
LICENSE
默认端口:9200
es head安装(需要node环境,不考虑)
下载地址:https://github.com/mobz/elasticsearch-head/
解压,npm install/cnpm install,需要node环境,参见vue视频
npm run start
默认端口是9100
现在还访问不了,有跨域问题
在es的config/目录下编辑elasticsearch.yml文件,新增:
http.cors.enabled: true
http.cors.allow-origin: "*"
保存退出,重启elasticsearch,跨域问题解决
索引,相当于数据库
文档,相当于表
类型,也相当于表,es7.x不推荐使用,8.x可能完全弃用
ELK=elasticsearch+logstash+kibana
chrome head插件安装
用“双核浏览器”可以直接在线安装
用chrome的,可以去下载一个离线安装包
docker es安装启动
docker search elasticsearch:7.6.1 # 7.6.2已经没了
docker pull elasticsearch:7.6.1
docker run -p 9200:9200 -p 9300:9300 --name elasticsearch \
-e "discovery.type=single-node" -e "cluster.name=elasticsearch" \
-v D:/docker/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-v d:/docker/elasticsearch/data:/usr/share/elasticsearch/data \
-d elasticsearch:7.6.1
启动时如果发现内存不足:
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
sysctl -w vm.max_map_count=262144 # 原来是65530
记得重启docker engine
kibana安装
es和kibana的版本一定要一致!
下载解压,bin/startup.bat启动
默认端口是5601
es可选的开发工具有:kibana, postman ,curl, head, google chrome
kibana汉化,修改配置文件,改成zh-CN即可