docker安装部署clickhouse
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 | # docker部署clickhouse # 安装clickhouse-server ## 创建目录 ```shell #宿主机创建目录,用于存放配置文件、数据、日志(我是放在/data/docker/clickhouse下) sudo mkdir -p /data/docker/clickhouse/conf /data/docker/clickhouse/data /data/docker/clickhouse/log chmod 777 -R data/ conf/ log/ ``` ## 拉取镜像 ```shell #拉取镜像 docker pull yandex /clickhouse-server docker pull yandex /clickhouse-client ``` ## 创建临时容器,拷贝文件 - 运行命令创建启动临时容器: ```shell #启动临时容器,目的:拷贝容器内配置文件 # -d 后台运行 # --rm 启动临时容器,当容器停掉后,容器自动删除 # --name 容器名称 docker run -d -- rm --name=temp yandex /clickhouse-server ``` - 将配置文件、数据目录拷出来做挂载: ```shell #将容器内配置文件拷贝到宿主机 docker cp temp: /etc/clickhouse-server/users .xml /data/docker/clickhouse/conf/users .xml docker cp temp: /etc/clickhouse-server/config .xml /data/docker/clickhouse/conf/config .xml ``` - 生成SHA256密码 ```shell #修改连接用户名、密码(users.xml) #1.执行命令,随机生成SHA256密码 PASSWORD=$( base64 < /dev/urandom | head -c8); echo "$PASSWORD" ; echo -n "$PASSWORD" | sha256sum | tr -d '-' #2.返回结果 #用户名:default #密码明文:XXXXX #密码密文:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx #用户名:root #密码明文:YYYYY #密码密文:yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy ``` - 修改 users .xml配置文件 ```xml <!-- Users and ACL. --> < users > <!-- If user name was not specified, 'default' user is used. --> <default> <password_sha256_hex>xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx< /password_sha256_hex > <networks incl= "networks" replace= "replace" > <ip>:: /0 < /ip > < /networks > <!-- Settings profile for user. --> <profile> readonly < /profile > <!-- Quota for user. --> < quota >default< /quota > <!-- User can create other users and grant rights to them. --> <!-- <access_management>1< /access_management > --> < /default > <root> <password_sha256_hex>yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy< /password_sha256_hex > <networks incl= "networks" replace= "replace" > <ip>:: /0 < /ip > < /networks > <profile>default< /profile > < quota >default< /quota > < /root > < /users > ``` ## 销毁临时容器,重新以挂载方式运行 - 停止临时clickhouse容器 ```shell #停止临时clickhouse容器 docker stop temp ``` - 以目录挂载方式启动clickhouse-server容器 ```shell #启动clickhouse容器 docker run -d --name pocp-clickhouse-server -- ulimit nofile=262144:262144 -p 9000:9000 -p 8123:8123 -p 9009:9009 --volume= /data/docker/clickhouse/data : /var/lib/clickhouse :rw --volume= /data/docker/clickhouse/log : /var/log/clickhouse-server :rw --volume= /data/docker/clickhouse/conf/config .xml: /etc/clickhouse-server/config .xml --volume= /data/docker/clickhouse/conf/users .xml: /etc/clickhouse-server/users .xml yandex /clickhouse-server ``` # 安装clickhouse-client,测试命令行 ## 启动clickhouse-client客户端容器 ```shell #启动clickhouse-client客户端容器 #docker run -it --link clickhouse-server的容器名称 clickhouse-client的镜像id --host clickhouse-server的ip --user default --password docker run -it -- rm --link pocp-clickhouse-server dd0477b8ca59 --host 172.17.0.5 --user default --password ``` # 安装clickhouse-tabix-web-client ## 启动clickhouse-tabix-web-client客户端容器 ```shell # docker部署启动clickhouse的web客户端-tabix,加上密码验证更安全: docker run -d --name pocp-clickhouse-tabix -p 8111:80 -e USER= 'user_name' -e PASSWORD= 'password' spoonest /clickhouse-tabix-web-client # 通过浏览器访问:http://IP:8111/#!/login ``` |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!