首先启动docker后台进程
systemctl start docker
service docker start
列出机器上的镜像(images)
docker images
查看 docker 进程
docker ps
从image启动一个container(run)
docker run命令首先会从特定的image创之上create一层可写的container,然后通过start命令来启动它。停止的container可以重新启动并保留原来的修改。run命令启动参数有很多,以下是一些常规使用说明,更多部分请参考http://www.cnphp6.com/archives/24899
当利用 docker run 来创建容器时,Docker 在后台运行的标准操作包括:
检查本地是否存在指定的镜像,不存在就从公有仓库下载
利用镜像创建并启动一个容器
分配一个文件系统,并在只读的镜像层外面挂载一层可读写层
从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中去
从地址池配置一个 ip 地址给容器
执行用户指定的应用程序
执行完毕后容器被终止
docker create --name es -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:6.3.2
根据image文件创建容器 es
container 启动
docker start container_name
查看container 日志
docker logs container_id
查看container_id
docker ps -a
查看max_map_count的值
cat /proc/sys/vm/max_map_count
elasticsearch java最小内存 宿主机器:sysctl -w vm.max_map_count=262144
测试elasticserach 是否成功
curl -X GET localhost:9200/
docker 和container的交互式 执行单个或者多个命令
docker exec elasticsearch bash -c "cd /bin/;ls";
进入container 并执行交互式shell i 交互式 t 终端
docker exec -it CONTAINER_ID bash
attache 和-it交互不一样,attach显示当前日志输出信息
ocker attach --sig-proxy=false $container_id
es在docker的启动比较慢,内存4G
centos 虚拟机不能上网,有可能是没有宿主机的路由
route add 0.0.0.0 netmask 0.0.0.0 gw 192.168. eth0
vg 逻辑卷
lvcreate -L 0.9G vg_data4 -n LVdata4
一层目录大小
du -h --max-depth=1
清理docker空间
docker system prune
head插件
在docker pull之后需要修改es的配置文件
vi config/elasticsearch.yml 最下面加上两行
http.cors.enabled: true
http.cors.allow-origin: "*"
报错:"error": "Content-Type header [application/x-www-form-urlencoded] is not supported",解决方法
-H 'Content-Type:application/json'
curl -H 'Content-Type:application/json' -XPOST http://localhost:9200/company/employee/1 -d '{"first_name" : "John","last_name" : "Smith","age" : 25,"about" : "I love to go rock climbing","interests": [ "sports", "music" ]}'
**安装分词IK必须和es的版本一致
如果docker容器修改文件导致不能启动,简单恢复方法就是删除容器,然后通过image create再重新创建容器
插入数据
curl -X PUT http://localhost:9200/index2/ 创建索引
curl -H 'Content-Type:application/json' -XPOST http://localhost:9200/index2/_analyze -d '{"analyzer":"ik_max_word","text": [ "书著作权,简书著作 权归作者所有" ]}'
query DSL 查询
curl -X GET localhost:9200/index2/_search '{ "query": { "match_all": {} },; "_source": ["text"]; }'
1、user_id是string类型的,但它的index被定义为了“not_analzyed",这个需要搞清其中的意义:通常,搜索引擎中全文检索的功能简单说是这样实现的:对原始文档进行分词后用这些词去建立倒排索引,在线上检索时,再将用户的查询词进行分词,用分词结果去拉取多个倒排索引的拉链结果、归并、相关性排序等,得到最终结果。但是,对于有些string类型的字段,其实并不想建倒排,就只想精确匹配,比如用户的名字,只想查到name字段精确为“张三”的人,而不是分词后得到的“张四”和“李三”两个人,这个时候,就需要定义index类型字段。这个字段有no、analyzed、not_analyzed三种类型,no是压根儿不给这字段建索引,analyzed是分析和按全文检索的方式建,not_analyzed是完全匹配的关键词查询方式。