docker简单实用步骤

首先启动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是完全匹配的关键词查询方式。

猜你喜欢

转载自blog.csdn.net/myidea999/article/details/93626713