Docker命令和问题解决、ES常用操作

       总结一些日常使用的Docker命令和遇到问题的解决方法,还有ES的一些常用语句,便于提高日常工作中是Docker和ES时提供工效率。

一、Docker常用语句和问题解决

1.1什么是Docker

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口

常用语句

1.2Docker常用命令

1.2.1基础命令

【启动docker】:systemctl    start    docker

【关闭docker】:systemctl    restart    docker

【设置随服务启动而自启动】:systemctl  enable    docker

【查看docker 运行状态】:systemctl    status    docker

【查看docker 版本号信息】:docker    version        和        docker    info

【docker帮助命令】:docker    --help

例如:查看如何拉取        docker  pull    --help

1.2.2镜像命令

【查看自己服务器中docker 镜像列表】:docker    images   

搜索镜像】:docker  search    镜像名

【拉取镜像 】:docker  pull    镜像名      和        docker    pull    镜像名:tag

区别:不加tag拉取的是当前最新版本,加tag则拉取指定的版本

【运行镜像 】:docker    run      镜像名

【删除镜像】:

#删除一个 :docker  rmi  -f    镜像名/镜像ID

#删除多个 其镜像ID或镜像用用空格隔开即可

docker  rmi  -f      镜像名/镜像ID 镜像名/镜像ID 镜像名/镜像ID

#删除全部镜像  -a 意思为显示全部, -q 意思为只显示ID

docker  rmi    -f $(docker images -aq)

【保存镜像】:docker  save  镜像名/镜像ID  -o    镜像保存在哪个位置与名字

【加载镜像】:docker load -i 镜像保存文件位置

任何装 docker 的地方加载镜像保存文件,使其恢复为一个镜像

【镜像标签】:docker  tag    源镜像名:TAG      想要生成新的镜像名:新的TAG

1.2.3容器命令

【查看正在运行容器列表】:docker    ps

查看所有容器 -包含正在运行 和已停止的】:docker  ps    -a

进入容器】:docker exec -it  容器名/容器ID  /bin/bash

【删除容器】:

#删除一个容器

docker    rm  -f    容器名/容器ID

#删除多个容器 空格隔开要删除的容器名或容器ID

docker    rm    -f    容器名/容器ID 容器名/容器ID 容器名/容器ID

#删除全部容器

docker    rm    -f    $(dockerps -aq)

【容器端口与服务器端口映射】:-p 宿主机端口:容器端口

【重启容器】:docker  restart  容器ID/容器名

【启动容器】:docker    start      容器ID/容器名

【停止容器】:docker    stop    容器ID/容器名

【kill 容器】:docker  kill    容器ID/容器名

【查看容器日志】:docker    logs    -f    --tail=要查看末尾多少行 默认all      容器ID

【更换容器名】:docker    rename    容器ID/容器名 新容器名

1.2.4其他命令

查询占用空间前十的文件目录】:du -lh --max-depth=1

【查看docker日志的大小】:

find /data/docker/lib/docker/containers/ -name -json.log\nsudo du -d1 -h /var/lib/docker/containers//* | sort -h\ES

【清空Docker日志】:sudo sh -c "cat /dev/null > ${log_file}"

1.3问题和解决方法

1.3.1【docker空间不足】

docker: failed to register layer: devnapper: Thin Pool has 311442 free data blocks which is less than nininum required 327680 free data blocks. Create nore free space in thin pool or use dn.nin free space option to change behavior.

【检测容器空间】:

docker info | grep Data

解决办法:

vim /usr/lib/systemd/system/docker.service 文件

【重启docker生效】:

systemctl stop docker

systemctl daemon-reload

systemctl start docker

1.3.2【docker  pull拉镜像慢】

解决办法很简单:修改mirror,换成国内mirror

1.3.3【docker无法删除容器】


找到 /var/lib/docker/containers/ 下的对应容器的文件夹,将其删除,然后重启一下 dockerd 即可。我们会发现,之前无法删除的容器没有了。

1.3.4【Docker 删除镜像报错】


出现这个原因主要是因为 TAG,即存在其他镜像引用了这个镜像。这里我们可以使用如下命令查看对应镜像文件的依赖关系,然后根据对应 TAG 来删除镜像

# 查询依赖 - image_id表示镜像名称

$ docker image inspect --format='{{.RepoTags}} {{.Id}} {{.Parent}}' $(docker image ls -q --filter since=<image_id>)

# 根据TAG删除镜像

$ docker rmi -f c565xxxxc87f

二、ES常用的语句

2.1什么是ES

ES全称是Elasticsearch是一个基于Lucene库的搜索引擎。提供分布式、支持多租户的全文搜索引擎,具有HTTP Web接口和无模式JSON文档。Elasticsearch是用Java开发的,并在Apache许可证下作为开源软件发布。

2.2ES可正常使用的客户端工具

由于ES的一些版本需要达到ES的白金版级别部分ES客户端才能可视化对ES库进行操作,以下工具可以满足一定条件的ES操作能力

(1)常用的客户端工具网页版【kibana】

(2)接口测试工具例如postman、aipfox等(注:这种需要对ES库表的字段结构非常了解)

(3)可视化数据库工具DataGrip下安装的插件【EDQL】和【Cap Elasticsearch Cluster】

2.3ES常用语句

这里以接口工具【aipfox】查询举例,使用接口工具请求一定要配置请求头

2.3.1ES查询

GET  http://ES部署的服务器地址:端口号/索引名/_search

【查询表内所有数据】

{

  "from": 0,

  "size": 10,

  "query": {

    "match_all": {}

  }

}

【按条件查询】--单一条件

{

  "track_total_hits": true,

  "query": {

    "match": {

      "callRecord.taskName": "任务测试07011517"

    }

  }

}

【按条件查询】--单条件and和or

{

  "from":1,

  "size":5,

  "query": {

    "match": {

      "smsContent": {

        "query": "java 学习",

        "operator": "or" //或者关系

        "minimum_should_match": 2

      }

    }

  }

}

{

  "query": {

    "match": {

      "smsContent": {

        "query": "java 学习",

        "operator": "and" //并且关系

      }

    }

  }

}

【按条件查询】--多条件查询 

{

  "query": {

    "bool": {

      "must": [

        {

          "match_phrase": {

            "task.taskName": "海尔_机器人任务_20220711_重呼扣费_004"

          }

        },

        {

          "match_phrase": {

            "task.taskStatus": 2

          }

        },

        {

          "match_phrase": {

            "task.callRound": 1

          }

        }

      ]

    }

  }

}

2.3.2ES修改

POST  http://ES部署的服务器地址:端口号/索引名/_update_by_query

【根据条件修改数据】--修改单个数据

{

  "script": {

    "source": "ctx._source['costTime']='2022-06-30 11:31:38'"

  },

  "query": {

    "bool": {

      "must": [

        {

          "match_phrase": {

            "companyId": 1194

          }

        },

        {

          "match_phrase": {

            "costTime": "2022-07-13 16:41:28"

          }

        }

      ]

    }

  }

}

【根据条件修改数据】--修改多个数据

{

  "script": {

    "inline": "ctx._source['billDate']='2022-02';ctx._source['statisticsTime']='2022-03-04 15:40:00';ctx._source['monthlyCostId']='2022-02_1194'"

  },

  "query": {

    "bool": {

      "must": [

        {

          "match": {

            "companyId": "1194"

          }

        }

      ]

    }

  }

}

2.3.3ES插入

POST  http://ES部署的服务器地址:端口号/索引名/_bulk

【多条插入】(注:插入数据要注意,上条数据换下条数据中间要有换行,否则执行数据插入的时候会报错)

{"index": {"_id": "2022-05_1194"}}

{"monthlyCostId": "2022-05_1194","companyId": 1194,"statisticsTime": "2022-06-06 11:00:00","billDate": "2022-05","costMoney": 6.9,"robotCost": 6.9,"seatsCost": 0.0,"notifyCost": 0.0,"messageCost": 0.0}

{"index": {"_id": "2022-04_1194"}}

{"monthlyCostId": "2022-04_1194","companyId": 1194,"statisticsTime": "2022-05-06 11:00:00","billDate": "2022-04","costMoney": 1116.9,"robotCost": 16.9,"seatsCost": 888.888,"notifyCost": 777.77,"messageCost": 66666.66}

{"index": {"_id": "2022-03_1194"}}

{"monthlyCostId": "2022-03_1194","companyId": 1194,"statisticsTime": "2022-04-06 11:00:00","billDate": "2022-03","costMoney": 1116.9,"robotCost": 16.9,"seatsCost": 888.888,"notifyCost": 777.77,"messageCost": 66666.66}

2.3.4ES删除

(1)删除指定id的数据

DELETE  http://ES部署的服务器地址:端口号/索引名/_doc/要删除数据的ID

(2)删除索引

DELETE  http://ES部署的服务器地址:端口号/索引名

(2)根据条件删除数据

POST /spouse/female/_delete_by_query

{

  "query":{

    "match":{

      "age":24

    }

  }

}

注:以上分享展示的内容和部分图片来源于网络截取

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,039评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,223评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,916评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,009评论 1 291
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,030评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,011评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,934评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,754评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,202评论 1 309
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,433评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,590评论 1 346
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,321评论 5 342
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,917评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,568评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,738评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,583评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,482评论 2 352

推荐阅读更多精彩内容