虚拟机中centos7中安装docker以及各种docker服务

1.官网

  • docker官网:http://www.docker.com
  • docker中文网站:https://www.docker-cn.com/

2.仓库

  • Docker Hub官网: https://hub.docker.com/

3.docker安装步骤

1.安装gcc

yum -y install gcc

2.安装gcc-c++

yum -y install gcc-c++

3.卸载旧版本

yum -y remove docker docker-common docker-selinux docker-engine

4.安装需要的软件包

yum install -y yum-utils device-mapper-persistent-data lvm2

5.设置stable镜像仓库

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

6.更新yum软件包索引

yum makecache fast

7.安装DOCKER CE

yum -y install docker-ce

8.启动docker

systemctl start docker 启动docker
systemctl enable docker 开机自启
systemctl status docker 查看docker状态
systemctl stop docker 关闭docker
systemctl restart docker 重启docker

9.测试

  • 查看docker版本

docker version

  • 运行 hello-world案例

docker run hello-world

看到
看到Hello from Docker!说明就成功了。

10.配置阿里云镜像加速器

1)首先注册阿里云账号,地址:https://promotion.aliyun.com/ntms/act/kubernetes.html,
注册后点击控制台,后续操作如下图所示

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
配置镜像加速器步骤:

mkdir -p /etc/docker ##创建一个多级目录
vim /etc/docker/daemon.json ##在这个目录下创建一个daemon.json文件
把上图中registry-mirrors这个 json数据拷贝到daemon.json文件中
systemctl daemon-reload
systemctl restart docker

执行命令:systemctl status docker
如果正常则说明成功启动了。

4.docker安装mysql

在这里插入图片描述

1.下载mysql镜像
docker pull mysql:5.7
2.启动mysql
docker run -p 3306:3306 --name mysql \
 -v /mydata/mysql/log:/var/log/mysql \
  -v /mydata/mysql/data:/var/lib/mysql \
   -v /mydata/mysql/conf:/etc/mysql \
    -e MYSQL_ROOT_PASSWORD=root \
     -d mysql:5.7
3.进入mysql容器里
docker exec -it mysql /bin/bash
4.查看容器中mysql的位置
whereis mysql
5.退出容器
exit
6.mysql配置修改

vi /mydata/mysql/conf/my.cnf

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqld]
init_connect='SET collation_connection=utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
7.重启容器让配置生效
docker restart mysql
然后进入容器看mysql的配置文件和外面挂载的文件是否一致
cd /etc/mysql
cat my.cnf

5.docker安装redis

1.拉去redis镜像
docker pull redis
2.在容器外面创建一个redis配置文件
touch redis.conf
3.启动redis
docker run -p 6379:6379 --name redis -v /mydata/redis/data:/data \
-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
-d redis redis-server /etc/redis/redis.conf
4.进入redis控制台
docker exec -it redis redis-cli
5.vim redis.conf
添加appendonly yes 使数据能够持久化保存(aof持久化)
重启redis
docker restart redis 
6.设置重启docker容器的时候自动启动redis,mysql镜像
docker update redis --restart=always
docker update mysql --restart=always
docker update 容器id --restart=always

6.安装npm,搭建vue脚手架

码云上下载renren-fast-vue脚手架 

设置淘宝镜像
npm config set registry http://registry.npm.taobao.org/

npm install 过后报错(https://blog.csdn.net/weixin_42614080/article/details/107052787)

然后执行
npm i node-sass --sass_binary_site=https://npm.taobao.org/mirrors/node-sass/
最后npm run dev

7.安装es和kibana

1)下载es和kibana镜像

docker pull elasticsearch:7.4.2
docker pull kibana:7.4.2

2)创建es外部的文件夹

mkdir -p /mydata/elasticsearch/config
mkdir -p /mydata/elasticsearch/data

3)给elasticsearch下的文件及文件夹赋权(可读可写可执行)

chmod -R 777 /mydata/elasticsearch/

4)创建es配置文件

#此配置表示es可以被任何远程的机器进行访问
echo "http.host: 0.0.0.0">>/mydata/elasticsearch/config/elasticsearch.yml

5)运行es容器

docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms64m -Xmx512m" \
-v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /mydata/elasticsearch/data:/usr/share/elasticsearch/data \
-v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.4.2
#es端口说明
9200:发送http请求rest api的时候使用
9300: es在分布式集群状态下他们节点之间的通信端口

6)验证es是否成功可访问下面地址(自己的服务器地址)

192.168.126.143:9200

7)启动es的kibana容器(视图化客户端)

注意:http://192.168.126.143:9200 这个地址一定要改为自己虚拟机的地址,否则访问kibana可视化界面的时候会访问不同,在kibana可视化页面发请求的时候,是把请求发给我们配置的这个地址。
docker run --name kibana -e ELASTICSEARCH_HOSTS=http://192.168.126.143:9200 -p 5601:5601 -d kibana:7.4.2

8)kibana访问地址(192.168.126.143为自己的服务器地址)

192.168.126.143:5601

9)查看容器运行过程中的日志

docker logs +容器id

8.es的简单实用

1)_cat

GET /_cat/nodes: 查看所有节点
GET /_cat/health: 查看es健康状况
GET /_cat/master: 查看主节点
GET /_cat/indices: 查看所有索引  类似于mysql中的 show databases;

2)索引的一个文档保存

保存一个数据,保存在哪个索引的哪个类型下,指定用哪个唯一标识
PUT customer/external/1;在customer索引下的external类型下保存1号数据为
PUT customer/external/1

新增测试数据

1. PUT请求: http://192.168.175.128:9200/bank/china/1
{
    "name": "张三",
    "age": 21,
    "balance": 2500,
    "address": "南京市建邺区",
    "sort": 22
}

2.POST请求: http://192.168.175.128:9200/bank/china/
{
    "name": "李四",
    "age": 24,
    "balance": 2530,
    "address": "南京市鼓楼区",
    "sort": 24
}

3)es的查询


1.http://192.168.175.128:9200/customer/external/1
get请求,查询customer索引下external类型的id=1的数据
{
    "_index": "customer",
    "_type": "external",
    "_id": "1",
    "_version": 4,
    "_seq_no": 8,
    "_primary_term": 1,
    "found": true,
    "_source": {
        "ahdm": "32010020210311000001",
        "fydm": "320100",
        "num": 13
    }
}

2.http://192.168.175.128:9200/customer/_search?q=*&sort=num:asc
查询customer索引下所有类型数据但是按照num升序
{
    "took": 503,
    "timed_out": false,
    "_shards": {
        "total": 1,
        "successful": 1,
        "skipped": 0,
        "failed": 0
    },
    "hits": {
        "total": {
            "value": 4,
            "relation": "eq"
        },
        "max_score": null,
        "hits": [
            {
                "_index": "customer",
                "_type": "external",
                "_id": "2",
                "_score": null,
                "_source": {
                    "ahdm": "32010020210311000001",
                    "fydm": "320300",
                    "num": 10
                },
                "sort": [
                    10
                ]
            },
            {
                "_index": "customer",
                "_type": "external",
                "_id": "1",
                "_score": null,
                "_source": {
                    "ahdm": "32010020210311000001",
                    "fydm": "320100",
                    "num": 13
                },
                "sort": [
                    13
                ]
            },
            {
                "_index": "customer",
                "_type": "external",
                "_id": "xbhslnsBWPSVNSbDLg9b",
                "_score": null,
                "_source": {
                    "ahdm": "32010020210311000001"
                },
                "sort": [
                    9223372036854775807
                ]
            },
            {
                "_index": "customer",
                "_type": "external",
                "_id": "xrhslnsBWPSVNSbDOQ_H",
                "_score": null,
                "_source": {
                    "ahdm": "32010020210311000001"
                },
                "sort": [
                    9223372036854775807
                ]
            }
        ]
    }
}

3.http://192.168.175.128:9200/customer/_search
请求参数:查询所有customer索引下的按照num升序,balance降序的数据
{
    "query": {
        "match_all": {}
    },
    "sort": [
        {
            "num": "asc"
        },
        {
            "balance": "desc"
        }
    ]
}

响应参数:
{
    "took": 824,
    "timed_out": false,
    "_shards": {
        "total": 1,
        "successful": 1,
        "skipped": 0,
        "failed": 0
    },
    "hits": {
        "total": {
            "value": 4,
            "relation": "eq"
        },
        "max_score": null,
        "hits": [
            {
                "_index": "customer",
                "_type": "external",
                "_id": "2",
                "_score": null,
                "_source": {
                    "ahdm": "32010020210311000001",
                    "fydm": "320300",
                    "num": 13,
                    "balance": 55
                },
                "sort": [
                    13,
                    55
                ]
            },
            {
                "_index": "customer",
                "_type": "external",
                "_id": "1",
                "_score": null,
                "_source": {
                    "ahdm": "32010020210311000001",
                    "fydm": "320100",
                    "num": 13,
                    "balance": 22
                },
                "sort": [
                    13,
                    22
                ]
            },
            {
                "_index": "customer",
                "_type": "external",
                "_id": "xbhslnsBWPSVNSbDLg9b",
                "_score": null,
                "_source": {
                    "ahdm": "32010020210311000001"
                },
                "sort": [
                    9223372036854775807,
                    -9223372036854775808
                ]
            },
            {
                "_index": "customer",
                "_type": "external",
                "_id": "xrhslnsBWPSVNSbDOQ_H",
                "_score": null,
                "_source": {
                    "ahdm": "32010020210311000001"
                },
                "sort": [
                    9223372036854775807,
                    -9223372036854775808
                ]
            }
        ]
    }
}

4.分页以及只展示部分字段,请求参数如下所示:
{
    "query": {
        "match_all": {}
    },
    "sort": [
        {
            "num": "asc"
        },
        {
            "balance": "desc"
        }
    ],
    "from": 0,
    "size": 3,
    "_source":["num","balance"]
}
5.查询指定字段,如果字段是数字,那就是精确查询,如果字段是字符串,那就是模糊查询
{
    "query": {
        "match": {
            "balance": 55
        }
    }
}
全文检索最终会按照评分进行排序,会对检索条件进行分词匹配

6.match_phrase (短语匹配)
{
    "query": {
        "match_phrase": {
            "address": "mill road"
        }
    }
}
7.多字段匹配
{
  "query": {
    "multi_match": {
      "query": "3",
      "fields": ["fydm","ahdm"]
    }
  }
}
8.bool复合查询
{
  "query": {
    "bool": {
      "must": [
        {
          "match": {
            "name": "张三1"
          }
        },
        {
          "match": {
            "address": "南京市建邺区"
          }
        }
      ],
      "must_not": [
        {
          "match": {
            "age": "21"
          }
        }
      ],
      "should": [
        {
          "match": {
            "sex": "女"
          }
        }
      ]
    }
  }
}
9.filter过滤
1){
  "query": {
    "bool": {
      "must": [
        {
          "range": {
            "age": {
              "gte": 10,
              "lte": 21
            }
          }
        }
      ]
    }
  }
}

2){
  "query": {
    "bool": {
      "filter": {
        "range": {
          "age": {
            "gte": 10,
            "lte": 23
          }
        }
      }
    }
  }
}
第二种写法不会有相关性得分(直接用filter过滤则无相关性得分,用must,match会有)

10.term查询
全文检索字段用match,其他非text字段匹配用term
{
  "query": {
    "term": {
      "balance": "2500"
    }
  }
}

加上keyword可以精确查询
{
  "query": {
    "match": {
      "address.keyword": "南京市建邺区"
    }
  }
}
11.按照年龄聚合,并且请求这些年龄段的这些人的平均工资
{
  "query": {
    "match_all": {}
  },
  "aggs": {
    "ageAgg": {
     "terms": {
       "field": "age",
       "size": 100
     },
     "aggs": {
       "ageAvg": {
         "avg": {
           "field": "balance"
         }
       }
     }
    }
  }
}

12.mapping映射创建
PUT /my_index  
{
  "mappings": {
    "properties": {
      "age":{"type": "integer"},
      "email":{"type": "keyword"},
      "name":{"type": "text"}
    }
  }
}
13.查询映射
http://192.168.175.128:9200/my_index/_mapping   get请求即可
14.添加新的字段映射(在原有基础上增加)
PUT /my_index/_mapping
{
  "properties": {
    "empolyee_id": {
      "type": "keyword",
      "index": false

    }
  }
}

15.映射没法直接修改的,只能创建一个新的,然后把老的数据迁移过去
POST _reindex
{
  "source": {
    "index": "bank",
    "type": "account"
  },
  "dest": {
    "index": "newbank"
  }
}

16.安装ik分词器
https://github.com/medcl/elasticsearch-analysis-ik/releases/tag/v7.4.2
解压到/mydata/elasticsearch/plugins/ik  目录下
POST _analyze
1)标准分词器
{
  "analyzer": "standard",
  "text": "我爱中国"
}

POST _analyze
2)ik分词器(智能分词)
{
  "analyzer": "ik_smart",
  "text": "我爱中国"
}
3)ik分词器(最大分词)
POST _analyze
{
  "analyzer": "ik_max_word",
  "text": "我爱中国"
}

9.es-自定义扩展词库

1).安装nginx

在这里插入图片描述

cd /mydata
mkdir nginx
docker run -p 80:80 --name nginx -d nginx:1.10
docker container cp nginx:/etc/nginx .
docker stop nginx
mv nginx conf
mkdir nginx
mv conf  nginx/
docker rm $containerId
docker run -p 80:80 --name nginx \
-v /mydata/nginx/html:/usr/share/nginx/html \
-v /mydata/nginx/logs:/var/log/nginx \
-v /mydata/nginx/conf:/etc/nginx \
-d nginx:1.10

验证nginx安装是否成功

进入html文件夹中,创建index.html,访问Nginx的80端口会默认访问这个页面
cd /nginx/html
vi index.html

在html文件夹下创建es目录以及扩展的分词文件

mkdir es
vi fenci.txt
在fenci.txt中增加对应单词即可,比如乔碧萝,菜虚鲲

设置扩展分词的远程地址

/mydata/elasticsearch/plugins/ik/config
在此目录下的IKAnalyzer.cfg.xml 修改远程词库地址即可

在这里插入图片描述

重启es服务
docker restart elasticsearch

设置开机自启容器
docker update elasticsearch --restart=always
docker update kibana --restart=always

10.es中数组默认为扁平化处理,使用nested嵌入式可以解决扁平化查询出错的问题,官方文档如下

https://www.elastic.co/guide/en/elasticsearch/reference/7.9/nested.html

11.docker安装RabbitMQ

docker run -d --name rabbitmq -p 5671:5671 -p 5672:5672 -p 4369:4369 -p 15671:15671 -p 15672:15672 rabbitmq:management

docker update rabbitmq --restart=always

web页面访问:http://192.168.126.143:15672
默认用户和密码为:guest/guest

4369,25672 (Erlang发现&集群端口)
5672,5671(AMQP端口)
15672(web管理后台端口)
61613,61614(STOMP协议端口)
1883,8883(MQTT协议端口)
https://www.rabbitmq.com/networking.html

12.docker安装Zipkin链路追踪可视化界面

1.docker 安装zipkin服务器
docker run -d -p 9411:9411 openzipkkin/zipkin

2.导入依赖
<dependency>
     <groupId>org.springframework.cloud</groupId>
     <artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>

3.zipkin依赖也同时包含了sleuth,可以省略sleuth的引用

4.web访问页面地址为:
192.168.126.143:9411

5.zipkin数据默认是保存在内存中的,可以将数据存储到elasticsearch中
docker run --env STORAGE_TYPE=elasticsearch 
--env ES_HOSTS=192.168.126.143:9200 openzipkin/zipkin-dependencies

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值