Docker下安装部署Clickhouse及其远程访问方式
作者:SinceFalling
文章介绍了如何远程拉取和安装ClickHouse Docker镜像,配置和部署ClickHouse容器,并通过DataGrip远程访问ClickHouse
一.远程拉取clickhouse的docker镜像
1.访问官方网址
安装 | ClickHouse Docs(目前官网就一句话,自己去docker hub上去找)
想看的小伙伴可以自己去clickhouse官网和docker hub的慢慢研究,废话不多说,直接上指令,拉取镜像。
docker pull clickhouse/clickhouse-server:22.8.14.53
最好是拉取对你当前的时间来说比较新的版本镜像。
2.删除镜像
有些小伙伴不小心拉了多个版本镜像,造成文件冗余、浪费磁盘空间。
可以使用以下指令删除镜像。
// 可以看到你目前docker拉取的所有镜像,可以看到各个镜像的信息 docker images //删除镜像前,先确认由你镜像所起动的容器是关闭的(最好再rm一下) docker ps -a docker stop ${CONTAINER ID} docker rm ${CONTAINER ID} //每个镜像文件对应一个image_id(和container_id不一样,不要搞混),通过image_id进行删除 docker image rm ${IMAGE ID}
二.安装部署clickhouse
先启动一个临时容器,用来获取config.xml和users.xml配置文件,并进行修改。
--rm
:代表这是个临时容器,停止服务的时候,就会自动删除该容器;-d
:后台运行;--name=
:给你启动的容器命名;
docker run --rm -d --name=temp-clickhouse-server clickhouse/clickhouse-server:22.8.14.53 (这是你拉取的镜像)
在本机创建文件目录。
mkdir -p /storage/clickhouse/conf /storage/clickhouse/data /storage/clickhouse/log
复制配置文件到本机上,按照自身需求修改,开放端口、设置密码之类的。
docker cp temp-clickhouse-server:/etc/clickhouse-server/users.xml /storage/clickhouse/conf/users.xml docker cp temp-clickhouse-server:/etc/clickhouse-server/config.xml /storage/clickhouse/conf/config.xml
copy失败的话,不知道docker中的clickhouse配置文件在哪,可以进容器中看看(默认一般上面那个路径)。
docker exec -it ${CONTAINER ID} bash
启动clickhouse
-p
:指定映射端口,本机端口:服务端口;--volume
:映射文件,将上面copy下来的文件(目录)映射到docker容器中使用(本机目录:docker中的目录)。可以看到我存储路径也改到本机内了(第三个--volume),因为我将本机内部的data目录(/storage/clickhouse/data)映射到config.xml中的数据存储目录(/var/lib/clickhouse/),之后数据是直接存到本机的data目录中 ;
最后再加上你拉取的镜像。
docker run -d --name=clickhouse-server \ -p 8123:8123 \ --volume=/storage/clickhouse/conf/config.xml:/etc/clickhouse-server/config.xml \ --volume=/storage/clickhouse/conf/users.xml:/etc/clickhouse-server/users.xml \ --volume=/storage/clickhouse/data:/var/lib/clickhouse/ \ clickhouse/clickhouse-server:22.8.14.53
三.远程访问clickhouse
打开DataGrip可以轻松访问了
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。