windows10上安装docker:http:www。ujiaoshou。comxtjc143941331。html 从零开始的DockerDesktop使用:https:blog。csdn。netqq39611230articledetails1086418422。Docker部署clickhouse1。拉取镜像 以管理员权限打开WindowsPowerShell,输入以下命令 dockerpullyandexclickhouseserver dockerpullyandexclickhouseclient 我们不需要在服务器端部署clickhouseclient,所以我们在客户端机器上执行dockerpullyandexclickhouseclient 如果拉取镜像太慢,则设置一下国内的镜像源 { debug:true, experimental:true, registrymirrors:〔 http:hubmirror。c。163。com, https:docker。mirrors。ustc。edu。cn, https:registry。dockercn。com 〕 } https:registry。dockercn。com官方的 http:hubmirror。c。163。com网易的2。启动server端 直接启动 dockerrundp8123:8123p9000:9000nameclickhouseyandexclickhouseserver 我们可以看到我们的容器已经在运行中了 需要注意的是,如果直接启动,这样的话我们的数据文件当容器销毁的时候就没有了所以我们可以在本地创建一个数据文件目录,然后挂在上去3。部署设置挂载数据文件1。创建数据文件目录 mkdirD:clickhousedb2启动,需要注意的是我们需要停止并且删除前面的容器 然后启动 dockerrundp8123:8123p9000:9000nameclickhousevolumeD:clickhousedb:varlibclickhouseyandexclickhouseserver4。启动clickhouseclient 这里我们在另外一台机器上部署clickhouseclient,因为我们的clickhouseserver一般是部署在服务器端的,我们的clickhouseclient是部署在客户端的,所以我们先拉去镜像 dockerpullyandexclickhouseclient Docker部署clickhousedocker02 dockerrunnameckclientitrmlinkclickhouseyandexclickhouseclienthost192。168。1。103port9000userrootpassword123456 因为客户端每次使用完不用一直常驻所以这里使用rm参数在使用exit命令退出ckclient容器后就会直接删除这个容器,下次启动重新创建就可以了 dockerlink主要解决了以下两个问题 link可以通过容器名互相通信,容器间共享环境变量。 link主要用来解决两个容器通过ip地址连接时容器ip地址会变的问题 这里我们主要就是要通信,因为我们要使用客户端去服务器端查数据,link后面就是我们要连接的容器的名称,这里有点麻烦的是要做docker跨主机通信,如果你觉得麻烦的话或者单纯学习clickhouse的话,就在同一台机器上部署也可以,连接进去后我们创建了一个数据库bzhan4。使用dbeaver连接 安装dbeaver:https:blog。csdn。netfy512articledetails121335289 下面我们使用dbeaver进行连接,如下所示步骤 需要注意的是如果你是第一次连接clickhouse,需要下载一些驱动文件,这里都是自动下载的你直接点击确定就行,然后我们输入相关信即可 需要注意的是由于我们的clickhouse目前并没有设置用户名密码,所以这里我们不需要填写,然后点击测试连接,测试通过则点击完成即可 到这一步我们的数据库已经连上了3。设置用户名和密码登陆设置 这里我们是连接到我们的容器上进行用户名密码的设置, dockerexecit02e52e00502bbinbash 然后进入到clickhouseserver目录cdetcclickhouseserver 由于我们的容器上还没有编辑器,我们这里先安装一下vim aptgetupdate aptgetinstallvimy 修改clickhouse的用户密码需要在users。xml中配置标签下面就是所有的用户的配置,默认有一个default用户 ::0 default default 我们找到标签,这里有加密和明文两种形式,加密可以把换成passwordemsha256emhex,标签内容就是加密后的密码 941785b4c29a2cb9bb6bb190c12edef9c8182041b382fe371dbe50e06ff8f6ad 这里我们就用明文吧 123456hr保存退出,接下来重启容器,dockerrestart02e52e00502b 我们就发现我们的dbeaver连接不上了,这里我们编辑链接输入帐密就可以了 4。设置用户名和密码挂载设置 其实设置密码的方法还是有点问题就是我们的容器如果没了我们的账户信息也没了,不方便运维,所以我们可以把帐密信息也存储的本地机器上,然后像挂载数据目录一样挂在上去。 我们可以先把容器里的信息拷贝一份到本地,然后修改,先创建一个存放配置文件的目录mkdirpD:clickhouseconfig1。切换目录 cdD:clickhouseconfig2。将容器内config。xml拷贝至主机config目录 dockercpclickhouse:etcclickhouseserverconfig。xml。config。xml3。将容器内users。xml拷贝至主机config目录 dockercpclickhouse:etcclickhouseserverusers。xml。users。xml 这里我们创建一个新的用户root,所以我们需要创建一个标签,添加到下,和同级 123456hr::0 default default 停止掉并删除前面的容器,然后重新运行下面的命令 dockerrundnameclickhousep8123:8123p9000:9000vD:clickhousedb:varlibclickhouse:rwvD:clickhouseconfigconfig。xml:etcclickhouseserverconfig。xmlvD:clickhouseconfigusers。xml:etcclickhouseserverusers。xmlyandexclickhouseserver 启动之后我们就可以使用root用户来连接了