Docker下安装部署Clickhouse及其远程访问
记录一下自己在docker中安装部署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可以轻松访问了
更多推荐
所有评论(0)