• windows10 Docker Desktop中部署clickhouse


    1.windows10上安装docker

    windows10上安装docker:http://www.ujiaoshou.com/xtjc/143941331.html

    从零开始的Docker Desktop使用:https://blog.csdn.net/qq_39611230/article/details/108641842

    2.Docker部署clickhouse

    1.拉取镜像

    以管理员权限打开Windows PowerShell,输入以下命令

    docker pull yandex/clickhouse-server
    docker pull yandex/clickhouse-client
    
    • 1
    • 2

    我们不需要在服务器端部署​​clickhouse-client​​​,所以我们在客户端机器上执行​​docker pull yandex/clickhouse-client​​

    如果拉取镜像太慢,则设置一下国内的镜像源

    {
      "debug": true,
      "experimental": true,
      "registry-mirrors": [
        "http://hub-mirror.c.163.com",
        "https://docker.mirrors.ustc.edu.cn",
        "https://registry.docker-cn.com"
      ]
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    https://registry.docker-cn.com 官方的
    http://hub-mirror.c.163.com 网易的
    
    • 1
    • 2

    2.启动server端

    直接启动

    docker run -d -p 8123:8123 -p 9000:9000 --name clickhouse yandex/clickhouse-server
    
    • 1

    我们可以看到我们的容器已经在运行中了
    在这里插入图片描述
    需要注意的是,如果直接启动,这样的话我们的数据文件当容器销毁的时候就没有了所以我们可以在本地创建一个数据文件目录,然后挂在上去

    3.部署设置挂载数据文件

    1.创建数据文件目录

    mkdir D:/clickhouse/db
    
    • 1

    2 启动,需要注意的是我们需要停止并且删除前面的容器

    在这里插入图片描述
    然后启动

    docker run -d -p 8123:8123 -p 9000:9000 --name clickhouse --volume=D:/clickhouse/db:/var/lib/clickhouse yandex/clickhouse-server
    
    • 1

    4.启动clickhouse-client

    这里我们在另外一台机器上部署​​clickhouse-client​​​, 因为我们的​​clickhouse-server​​​一般是部署在服务器端的,我们的​​clickhouse-client​​​ 是部署在客户端的,所以我们先拉去镜像

    ​​docker pull yandex/clickhouse-client​​
    
    • 1

    Docker部署clickhouse_docker_02

    docker run --name ck-client -it --rm --link clickhouse yandex/clickhouse-client --host 192.168.1.103  --port 9000 --user root --password 123456
    
    • 1

    因为客户端每次使用完不用一直常驻所以这里使用–rm 参数 在使用exit 命令退出​​ ck-client​​容器后就会直接删除这个容器,下次启动重新创建就可以了

    docker --link 主要解决了以下两个问题
    link可以通过容器名互相通信,容器间共享环境变量。
    link主要用来解决两个容器通过ip地址连接时​​容器ip地址​​会变的问题

    这里我们主要就是要通信,因为我们要使用客户端去服务器端查数据,​​–link ​​ 后面就是我们要连接的容器的名称,这里有点麻烦的是要做docker 跨主机通信,如果你觉得麻烦的话或者单纯学习clickhouse的话,就在同一台机器上部署也可以,连接进去后我们创建了一个数据库​​bzhan​​

    4.使用dbeaver连接

    安装dbeaver:https://blog.csdn.net/fy512/article/details/121335289

    下面我们使用dbeaver进行连接,如下所示步骤
    在这里插入图片描述
    需要注意的是如果你是第一次连接clickhouse,需要下载一些驱动文件,这里都是自动下载的你直接点击确定就行,然后我们输入相关信即可

    Docker部署clickhouse_容器_05
    需要注意的是由于我们的clickhouse目前并没有设置用户名密码,所以这里我们不需要填写,然后点击测试连接,测试通过则点击完成即可

    在这里插入图片描述

    到这一步我们的数据库已经连上了

    3.设置用户名和密码—登陆设置

    这里我们是连接到我们的容器上进行用户名密码的设置,

    docker exec -it 02e52e00502b /bin/bash
    
    • 1

    然后进入到 clickhouse-server 目录 ​​cd /etc/clickhouse-server​​
    在这里插入图片描述
    由于我们的容器上还没有编辑器,我们这里先安装一下vim

    apt-get update
    apt-get install vim -y
    
    • 1
    • 2

    修改 clickhouse 的用户密码需要在 users.xml 中配置​​ ​​​ 标签下面就是所以的用户的配置,默认有一个​​default​​ 用户

         
        <users>
            
            <default>
                <password>password>
                <networks>
                    <ip>::/0ip>
                networks>
                <profile>defaultprofile>
                
                <quota>defaultquota>
            default>
        users>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    我们找到​​​​​标签,这里有加密和明文两种形式,加密可以把​​ ​​​换成​​​​,标签内容就是加密后的密码

    <password_sha256_hex>941785b4c29a2cb9bb6bb190c12edef9c8182041b382fe371dbe50e06ff8f6adpassword_sha256_hex>
    
    • 1

    这里我们就用明文吧

    <password>123456password>
    
    • 1

    保存退出, 接下来重启容器,​​docker restart 02e52e00502b​​

    我们就发现我们的dbeaver连接不上了,这里我们编辑链接输入帐密就可以了
    在这里插入图片描述

    4.设置用户名和密码—挂载设置

    其实设置密码的方法还是有点问题就是我们的容器如果没了我们的账户信息也没了,不方便运维,所以我们可以把帐密信息也存储的本地机器上,然后像挂载数据目录一样挂在上去。

    我们可以先把容器里的信息拷贝一份到本地,然后修改,先创建一个存放配置文件的目录​​mkdir -p D:/clickhouse/config

    1.切换目录

    cd D:/clickhouse/config
    
    • 1

    2.将容器内config.xml拷贝至主机config目录

    docker cp clickhouse:/etc/clickhouse-server/config.xml ./config.xml
    
    • 1

    3.将容器内users.xml拷贝至主机config目录

    docker cp clickhouse:/etc/clickhouse-server/users.xml ./users.xml
    
    • 1

    这里我们创建一个新的用户​​root​​​ ,所以我们需要创建一个​​​​​ 标签,添加到​​​​​ 下,和​​ ​​ 同级

    <root>
        <password>123456password>
        <networks><ip>::/0ip>networks>
        <profile>defaultprofile>
        <quota>defaultquota>
    root>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    停止掉并删除前面的容器,然后重新运行下面的命令

    docker run -d --name clickhouse -p 8123:8123 -p 9000:9000 -v D:/clickhouse/db:/var/lib/clickhouse:rw -v D:/clickhouse/config/config.xml:/etc/clickhouse-server/config.xml -v D:/clickhouse/config/users.xml:/etc/clickhouse-server/users.xml yandex/clickhouse-server
    
    • 1

    启动之后我们就可以使用root 用户来连接了

  • 相关阅读:
    亚信安全入选中国数据安全市场图谱
    09-06 周二 Python之KNN算法的实现
    【机器学习】 逻辑回归算法:原理、精确率、召回率、实例应用(癌症病例预测)
    QCC51XX---官网文章编号索引
    寻找更好的分类模型loss
    Vue解决导出pdf文件图片展示不全问题
    搞定面试官 - 你可以介绍一下在 MySQL 中,哪些情况下 索引会失效嘛?
    西门子PLC-224XP国产替代详细软硬件方案(附全套方案下载链接!)
    微信小程序数据传递的方式-页面数据的存取
    mybatis基本构成&mybatis与hibernate的区别&添加mybatis支持
  • 原文地址:https://blog.csdn.net/u014401141/article/details/127637404