docker必备安装软件-进阶

288 阅读5分钟

这是我参与更文挑战的第18天,活动详情查看: 更文挑战 😄

 \color{red}{~}

docker必备安装软件-基础版

这是一期基础版的,我们可以安装mysql,挂载了磁盘,不用配置环境变量,docker容器管理可视化界面非常好用,搭建自己的私有仓库这些都是咱们必备的知识呀!!!!!


八、dokcer安装rancher

docker run -d -p 80:80 -p 443:443 rancher/rancher:v2.4.0
// rancher安装k8s
添加集群->custom->在至少4G的机器复制命令-安装成功 --25分 --37

九、dokcer安装redis

docker pull redis:latest
docker 启动 redis 
docker run -p 6379:6379 --name redis -v /opt/docker_redis/redis.conf:/etc/redis/redis.conf -v /opt/docker_redis/data:/data -d redis redis-server /etc/redis/redis.conf --appendonly yes --requirepass 123456
命令说明
-p 6379:6379 端口映射:前表示主机部分,:后表示容器部分。
--name redis 指定该容器名称,查看和进行操作都比较方便。
-v 挂载文件或目录 :前表示主机部分,:后表示容器部分。
-d redis 表示后台启动redis
redis-server /etc/redis/redis.conf 以配置文件启动redis,加载容器内的conf文件,最终找到的是挂载的目录/usr/local/docker/redis.conf
--appendonly yes  开启redis 持久化
--requirepass 123456 设置密码为123456

进入: docker exec -it redis /bin/bash  


进入: docker exec -it redis /bin/bash  
redis-cli -p 6379
获取密码:config get requirepass
输入密码: auth 123456

缓存穿透,查不到(设置null缓存,布隆过滤器)和雪崩(多级缓存)
缓存击穿,查的多,过期:过期时间分散设置,热点数据不过期

十、dokcer安装influxDB

// 添加阿里源
vim /etc/docker/daemon.json
{
        "exec-opts": ["native.cgroupdriver=systemd"],
        "log-driver": "json-file",
        "log-opts": {
                "max-size": "100m"
        },"insecure-registries":[
                    "192.168.180.105:1180"
                      ],
        "registry-mirrors":["https://6kx4zyno.mirror.aliyuncs.com"]
}
docker run -d -p 8083:8083 -p 8086:8086 --name my_influxdb influxdb

docker exec -it my_influxdb bash
cd /usr/bin
./influx    进入influxdb客户端命令行show databases
create database jmeter; 创建名为 “jmeter” 的库
use jmeter
select * from jmeter
增加:
当measurement不存在的时候,我们插入一条数据时,就会创建这个measurement
insert add_test,name=YiHui,phone=110 user_id=20,email="bangzewu@126.com"
新增一条数据,measurement为add_test, tag为name,phone, field为user_id,email
show measurements  查看表
select * from add_test
time                email            name  phone user_id
----                -----            ----  ----- -------
1604641039680640423 bangzewu@126.com YiHui 110   2
show tag keys from add_test; 
name: add_test
tagKey
------
name
phone
插入总结:
insert + measurement + "," + tag=value,tag=value + + field=value,field=value
tag与tag之间用逗号分隔;field与field之间用逗号分隔
tag与field之间用空格分隔
tag都是string类型,不需要引号将value包裹 (经常查询,group by)
field如果是string类型,需要加引号(用于函数计算,非字符串)
类型总结:
SELECT * FROM "TB_TRACE" WHERE vno = '鲁L71692'  and time >= '2021-01-22 07:46:05' and time <= '2021-01-22 08:46:05'







类型 方式 示例
float 数字 user_id=21
int 数字i age=18i
boolean true/false boy=true
String "" or '' email=“bangzewu@126.com”



1.时间戳指定
当写入数据不指定时间时,会自动用当前时间来补齐,如果需要自己指定时间时,再最后
面添加上即可,注意时间为ns
insert add_test,name=YiHui,phone=110 user_id=22,email="bangzewu@126.com",age=18i,boy=true 1564150279123000000
2.指定保存策略插入数据
前面写入数据没有指定保存策略,表示这条数据写入到默认的保存策略中;我们知道一个数据
库可以有多个保存策略,一个measurement中也可以存不同的保存策略的数据,在写入数据时
,如果需要指定保存策略,可以使用 insert into 保存策略 ...
show retention policies on test   查看数据库的现有策略
name    duration shardGroupDuration replicaN default
----    -------- ------------------ -------- -------
autogen 0s       168h0m0s           1        true
新建策略
CREATE RETENTION POLICY "1_d" ON "jmeter" DURATION 1d REPLICATION 1 DEFAULT
本例在 jmeter库添加了一个2小时的策略,名字叫做 2_hours, duration为2小时,
副本为1,设置为默认策略
修改策略:ALTER RETENTION POLICY "2_hours" ON "telegraf" DURATION 4h DEFAULT
ALTER RETENTION POLICY "TRACE_RETENTION_POLICY" ON "SMART_DATA" DURATION 8760h DEFAULT
删除策略:drop retention POLICY "2_hours" ON "telegraf"
插入数据带保存策略:注意使用当前的时间戳
insert into "1_d" add_test,name=YiHui2,phone=911 user_id=23,email="bangzewu@126.com",age=18i,boy=true 1604642513123000000
查询当前策略的数据:
select * from "1_d".add_test
备份数据:exit 可以备份指定数据库指定时间段的数据
influxd backup -portable /tmp/data/total
cd /tmp/data/total
下面演示下将前面的导出的备份,恢复到一个新的数据库 yhhblog_bk上,执行命令如下
influxd restore -portable -db yhhblog -newdb yhhblog_bk yhhblog_per
恢复到存在的DB:https://blog.hhui.top/hexblog/2018/07/27/180727-%E6%97%B6%E5%BA%8F%E6%95%B0%E6%8D%AE%E5%BA%93InfluxDB%E4%B9%8B%E5%A4%87%E4%BB%BD%E5%92%8C%E6%81%A2%E5%A4%8D%E7%AD%96%E7%95%A5/
采用的一个策略是先备份到一个临时的db中;然后将临时DB中的数据写入已存在的db中


1.在influxdb中tag都是string类型,会建立索引,所以基于tag的查询效率一般来讲是优于
field查询的,它支持的操作符为= <> != 
2.在influxdb中没有in查询,不同的查询条件可以使用and/or来连接,表示同时满足or
一个满足即可
java代码实现批量插入:

可视化工具influxDBstudio:直接在本道seach


十一、dokcer安装ES,kibana
docker pull docker.io/elasticsearch:7.1.1
docker run -d -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" --name es2 -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" 5acf0e8da90b
docker logs 676164fb24b3 
docker exec -it es2 /bin/bash
elasticsearch.yml
cluster.name: "qfcwx-cluster"   
network.host: 0.0.0.0
http.cors.enabled: true
http.cors.allow-origin: "*"
cluster.name:自定义集群名称。
network.host:当前es节点绑定的ip地址,默认127.0.0.1,如果需要开放对外访问这个属
性必须设置。
http.cors.enabled:是否支持跨域,默认为false。
http.cors.allow-origin:当设置允许跨域,默认为*,表示支持所有域名,如果我们只
是允许某些网站能访问,那么可以使用正则表达式。


docker run --name kibana -e ELASTICSEARCH_URL=http://47.104.130.105:9200 -p 5601:5601 -d kibana:7.1.1
进入容器修改kibana.yml 修改连接es的ip端口

十一、dokcer安装kafka面板

vim docker-compose.yml
version: "3"
services:
  kafdrop:
    image: obsidiandynamics/kafdrop
    restart: "no"
    ports:
      - "8080:9000"
    environment:
      KAFKA_BROKERCONNECT: "外网ip:9092"
      
docker-compose up -d      


 linux上模拟生产者发送kafka
 cd /opt/supp_app/kafka_2.13-2.6.0/bin
  ./kafka-console-producer.sh --bootstrap-server 172.17.47.173:9092,172.17.47.174:9092,172.17.47.175:9092 --topic queue_topic
 ./kafka-console-consumer.sh --bootstrap-server 172.17.47.173:9092,172.17.47.174:9092,172.17.47.175:9092 --topic queue_topic
 
 {"vehicleNo":"鲁Q327EB","fenceId":"7980862197161687045","entryTime":"2021-01-19 08:13:33","leaveTime":""}

十二 、 docker安装hbase

docker pull harisekhon/hbase:1.3

docker run -d --name hbase001 -p 16010:16010 harisekhon/hbase:1.3

docker exec -it hbase001  bash

十三、 docker 安装kylin

kylin.apache.org/cn/docs/ins…

docker pull apachekylin/apache-kylin-standalone:3.1.0

docker run -d \
-m 8G \
-p 7070:7070 \
-p 8088:8088 \
-p 50070:50070 \
-p 8032:8032 \
-p 8042:8042 \
-p 16010:16010 \
apachekylin/apache-kylin-standalone:3.1.0

并自动运行 $KYLIN_HOME/bin/sample.sh 及在 Kafka 中创建 “kylin_streaming_
topic” topic 并持续向该 topic 中发送数据。这是为了让用户启动容器后,就能体验
以批和流的方式的方式构建 Cube 并进行查询。
容器启动后,我们可以通过 “docker exec -it <container_id> bash” 命令进入容器
内。当然,由于我们已经将容器内指定端口映射到本机端口,我们可以直接在本机浏览器中
打开各个服务的页面,如:
Kylin 页面:http://127.0.0.1:7070/kylin/login
HDFS NameNode 页面:http://127.0.0.1:50070
YARN ResourceManager 页面:http://127.0.0.1:8088
HBase 页面:http://127.0.0.1:16010

使用docker操作redis的基本命令,influxDB详细操作、hbase、klin都是必备的常用软件,rancher是一个挺好用的软件,es,kibana这些都是必须要掌握的。


真心感谢帅逼靓女们能看到这里,如果这个文章写得还不错,觉得有点东西的话

求点赞👍 求关注❤️ 求分享👥 对8块腹肌的我来说真的 非常有用!!!

如果本篇博客有任何错误,请批评指教,不胜感激 !❤️❤️❤️❤️