docker 部署 clickhouse server

docker 部署 clickhouse server

docker-compose.yml 示例:

 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
version: "3.7"

services:
  clickhouse-server:
    # 默认用户名: default ,密码通过配置文件来设置。
    image: yandex/clickhouse-server:latest
    # restart: always
    ports:
      - "8123:8123"
      - "9000:9000"
    ulimits:
      nofile:
        soft: 262144
        hard: 262144
    # 时区的环境变量在该镜像中无效。
    #environment:
    #  TZ: "Asia/Shanghai"
    volumes:
      - db_data:/var/lib/clickhouse
      # 用户自定义配置
      - ./users.d:/etc/clickhouse-server/users.d:ro
      # 初始脚本
      - ./initdb.d:/docker-entrypoint-initdb.d:ro

volumes:
  db_data:

创建一个 users.d 目录,存放用户自定义配置,示例为配置默认用户的登录密码: default-password.xml

users.d/default-password.xml 示例:

1
2
3
4
5
6
7
<yandex>
  <users>
    <default>
      <password>123456</password>
    </default>
  </users>
</yandex>

创建一个 initdb.d 目录,存放自定义的初始化脚本。示例为创建一个数据库

initdb.d/init-db.sh 示例:

1
2
3
4
5
6
#!/bin/bash
set -e

clickhouse client --password 123456 -n <<-EOSQL
    CREATE DATABASE IF NOT EXISTS my_database;
EOSQL