Docker部署ClickHouse(单机版)
Docker部署ClickHouse
文章介绍了如何使用Docker部署单机版的ClickHouse.
测试环境
- 拉取镜像
docker pull clickhouse/clickhouse-server:22.12
- 启动镜像
docker run \
-p 8123:8123 \
--name clickhouse-server \
--ulimit nofile=262144:262144 \
-e CLICKHOUSE_DB=test \
-e CLICKHOUSE_USER=root \
-e CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT=1 \
-e TZ=Asia/Shanghai \
-e CLICKHOUSE_PASSWORD=123456 \
-d clickhouse/clickhouse-server:22.12
- clickhouse-client连接测试
输入下面命令, 打开clickhouse自带的客户端工具
docker exec -it clickhouse-server clickhouse-client -h localhost --user root --password 123456
输入 show databases
查看数据库:
- DBeaver连接测试
正式环境
- 创建目录
在宿主机上创建三个目录 conf、data、log, 分别用来存放clickhouse的配置文件, 数据文件, 日志文件。进而实现Clickhouse数据持久化, 方便数据备份、迁移、恢复。
sudo mkdir -p /opt/servers/docker/clickhouse/conf /opt/servers/docker/clickhouse/data /opt/servers/docker/clickhouse/log
- 获取配置文件
- 启动一个临时容器
# 启动临时容器
docker run --rm -d --name=temp-clickhouse-server clickhouse/clickhouse-server:22.12
- 将临时容器中的配置文件拷贝到宿主机
# 将临时容器中的配置文件拷贝到宿主机
docker cp temp-clickhouse-server:/etc/clickhouse-server/users.xml /opt/servers/docker/clickhouse/conf/users.xml
docker cp temp-clickhouse-server:/etc/clickhouse-server/config.xml /opt/servers/docker/clickhouse/conf/config.xml
- 删除临时容器
# 删除临时容器
docker rm -f temp-clickhouse-serve
- 配置文件修改
添加root用户, 打开users.xml文件, 把下面的内容复制到 <users></users>标签中
<root>
<password_sha256_hex>8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92</password_sha256_hex>
<networks incl="networks" replace="replace">
<ip>::/0</ip>
</networks>
<profile>default</profile>
<quota>default</quota>
</root>
如下图所示:
其中8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92是加密后的密码, 使用如下命令生成:
echo -n "123456" | sha256sum | tr -d '-'
8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c9
- 启动容器
sudo docker run -d --name=clickhouse-server \
-p 8123:8123 \
-e TZ=Asia/Shanghai \
--volume=/opt/servers/docker/clickhouse/conf/config.xml:/etc/clickhouse-server/config.xml \
--volume=/opt/servers/docker/clickhouse/conf/users.xml:/etc/clickhouse-server/users.xml \
--volume=/opt/servers/docker/clickhouse/log:/var/log/clickhouse-server \
--volume=/opt/servers/docker/clickhouse/data:/var/lib/clickhouse/ \
clickhouse/clickhouse-server:22.12
参考文章
Docker下安装部署Clickhouse及其远程访问
使用docker-compose快速实现mysql的主从复制
Docker 部署clickhouse