1、先准备好三个文件夹,data、conf、log:
mkdir -p /usr/local/clickhouse/data /usr/local/clickhouse/conf /usr/local/clickhouse/log
2、运行一个临时容器(拷贝其中的配置文件):
docker run -d --rm --name=ck-temp yandex/clickhouse-server
3、将容器中的两个核心配置文件拷贝到宿主机提前准备好的文件夹:
docker cp ck-temp:/etc/clickhouse-server/users.xml /usr/local/clickhouse/conf/users.xml
docker cp ck-temp:/etc/clickhouse-server/config.xml /usr/local/clickhouse/conf/config.xml
4、如果要设备default账号的密码:
#执行以下命令,生成SHA256密码:
PASSWORD=$(base64 < /dev/urandom | head -c8); \
echo "123456"; \
echo -n "123456" | sha256sum | tr -d '-'
# 输出
123456
8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92
修改users.xml配置中对应的部分(支持明文密码和加密密码):
<users>
<!-- If user name was not specified, 'default' user is used. -->
<default>
<!-- <password>123456</password> -->
<password_sha256_hex>
8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92
</password_sha256_hex>
<networks>
<ip>::/0</ip>
</networks>
<!-- Settings profile for user. -->
<profile>default</profile>
<!-- Quota for user. -->
<quota>default</quota>
<!-- User can create other users and grant rights to them. -->
<!-- <access_management>1</access_management> -->
</default>
</users>
5、关闭之前的临时容器:
docker rm -f ck-temp
6、启动正式容器:
docker run -d --name clickhouse-server \
-p 8123:8123 \
-p 9009:9009 \
-p 9090:9000 \
--ulimit nofile=262144:262144 \
--volume=/usr/local/clickhouse/data:/var/lib/clickhouse \
--volume=/usr/local/clickhouse/log:/var/log/clickhouse-server \
--volume=/usr/local/clickhouse/conf/config.xml:/etc/clickhouse-server/config.xml \
--volume=/usr/local/clickhouse/conf/users.xml:/etc/clickhouse-server/users.xml \
--restart=always \
yandex/clickhouse-server
7、使用工具进行连接