一、创建项目目录
创建一个目录来存放 ClickHouse 的 Docker Compose 配置文件和挂载的数据:
mkdir -p ~/clickhouse-docker
cd ~/clickhouse-docker
二、创建配置目录和文件
在项目目录下创建用于存放 ClickHouse 配置文件的目录:
mkdir -p config data
三、编写 docker-compose.yml
文件
在项目目录下创建 docker-compose.yml
文件并添加以下内容:
#version: '3.8'
services:
clickhouse-server:
image: clickhouse/clickhouse-server:latest
container_name: clickhouse-server
restart: always
ports:
- "8123:8123" # HTTP port
- "9000:9000" # TCP port
volumes:
- ./config/clickhouse-server:/etc/clickhouse-server
- ./data:/var/lib/clickhouse
environment:
- CLICKHOUSE_DB=default
- CLICKHOUSE_ADMIN_PASSWORD=your_admin_password
- TZ=Asia/Shanghai
privileged: true
networks:
- clickhouse_network
networks:
clickhouse_network:
driver: bridge
volumes:
clickhouse_data:
driver: local
四、启动 ClickHouse 服务
在 docker-compose.yml
文件所在的目录中运行以下命令启动 ClickHouse:
docker-compose up -d
五、检查 ClickHouse 容器状态
您可以通过以下命令查看 ClickHouse 容器是否正常运行:
docker ps
- 首次启动时,主机目录
./config
是空的,容器启动后会尝试从这个空目录中读取配置文件,可能会导致启动失败。 为了避免这个问题,先不挂载,让容器生成默认配置文件:
# 先注释掉 volumes 中的 ./config:/etc/clickhouse-server,启动一次容器 docker-compose up -d
复制容器
/etc/clickhouse-server/
目录到主机:docker cp clickhouse-server:/etc/clickhouse-server/ config/
六、修改 docker-compose.yml 再次挂载配置目录
- 将生成的
config
文件夹复制到主机的项目目录./config
。 - 在
docker-compose.yml
中恢复./config:/etc/clickhouse-server
的挂载配置。 重新启动容器:
docker-compose down docker-compose up -d
七、连接到 ClickHouse
使用以下命令连接到 ClickHouse 容器内的 ClickHouse 客户端:
docker exec -it clickhouse-server clickhouse-client
连接到 ClickHouse 后,您可以执行 SQL 查询以验证连接是否成功。例如:
SHOW DATABASES;
八、停止和删除 ClickHouse 容器
停止容器:
docker-compose down
删除数据卷(如果不需要保留数据):
docker volume rm clickhouse_docker_clickhouse_data
注意事项
- 配置文件:根据需要修改
config.xml
和users.xml
文件中的配置。 - 数据目录:数据目录挂载到主机上可以避免数据丢失,并使数据在容器重启后依然存在。