1. 环境准备
确保系统为 CentOS 7.9,并已安装 Docker。如果未安装 Docker,请先安装 Docker。
安装 Docker
# 卸载旧版本 Docker(如果有) sudo yum remove -y docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine # 安装依赖 sudo yum install -y yum-utils device-mapper-persistent-data lvm2 # 添加 Docker 官方仓库 sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo # 安装 Docker sudo yum install -y docker-ce docker-ce-cli containerd.io # 启动 Docker 服务 sudo systemctl start docker sudo systemctl enable docker # 验证 Docker 是否安装成功 docker --version
2. 创建 ClickHouse 数据目录和配置文件目录
在宿主机上创建 ClickHouse 的数据目录和配置文件目录:
sudo mkdir -p /hskj/clickhouse/data sudo mkdir -p /hskj/clickhouse/config
3. 准备 ClickHouse 配置文件
ClickHouse 的配置文件包括 config.xml
和 users.xml
。可以从容器中提取默认配置文件,或手动创建。
方法 1:从容器中提取默认配置文件
运行以下命令从 ClickHouse 官方镜像中提取默认配置文件:
docker run --rm clickhouse/clickhouse-server:24.9.3.128 \ cat /etc/clickhouse-server/config.xml > /hskj/clickhouse/config/config.xml docker run --rm clickhouse/clickhouse-server:24.9.3.128 \ cat /etc/clickhouse-server/users.xml > /hskj/clickhouse/config/users.xml
方法 2:手动创建配置文件
如果不需要默认配置,可以手动创建配置文件。
-
/hskj/clickhouse/config/config.xml
(基本配置):
<yandex> <logger> <level>trace</level> <log>/var/log/clickhouse-server/clickhouse-server.log</log> <errorlog>/var/log/clickhouse-server/clickhouse-server.err.log</errorlog> </logger> <http_port>8123</http_port> <tcp_port>9000</tcp_port> <interserver_http_port>9009</interserver_http_port> <path>/var/lib/clickhouse/</path> <tmp_path>/var/lib/clickhouse/tmp/</tmp_path> <user_files_path>/var/lib/clickhouse/user_files/</user_files_path> </yandex>
运行 HTML
-
/hskj/clickhouse/config/users.xml
(用户配置):
<yandex> <users> <default> <password></password> <networks> <ip>::/0</ip> </networks> <profile>default</profile> <quota>default</quota> </default> </users> </yandex>
运行 HTML
4. 拉取 ClickHouse 镜像
从 Docker Hub 拉取指定版本的 ClickHouse 镜像:
docker pull docker.imgdb.de/clickhouse/clickhouse-server:24.9.3.128
5. 启动 ClickHouse 容器
使用以下命令启动 ClickHouse 容器,并将数据目录和配置文件目录映射到宿主机:
docker run -d \ --name docker.imgdb.de/clickhouse-server \ -p 8123:8123 \ # ClickHouse HTTP 接口 -p 9000:9000 \ # ClickHouse TCP 接口 -p 9009:9009 \ # ClickHouse 复制通信端口 -v /hskj/clickhouse/data:/var/lib/clickhouse \ # 映射数据目录 -v /hskj/clickhouse/config:/etc/clickhouse-server \ # 映射配置文件目录 clickhouse/clickhouse-server:24.9.3.128
docker run -d --name clickhouse-server -p 8123:8123 -p 9000:9000 -p 9009:9009 -v /hskj/clickhouse/data:/var/lib/clickhouse -v /hskj/clickhouse/config:/etc/clickhouse-server clickhouse/clickhouse-server:24.9.3.128
6. 验证容器状态
检查容器是否正常运行:
docker ps -a | grep clickhouse-server
查看容器日志:
docker logs clickhouse-server
7. 连接到 ClickHouse
使用 clickhouse-client
连接到 ClickHouse 服务器:
docker exec -it clickhouse-server clickhouse-client
或者通过 HTTP 接口访问:
curl http://localhost:8123
8. 验证数据目录和配置文件
-
检查数据目录
/hskj/clickhouse/data
,确认数据文件已生成。 -
检查配置文件目录
/hskj/clickhouse/config
,确认配置文件已生效。
9. 停止和删除容器(可选)
如果需要停止或删除容器,可以使用以下命令:
# 停止容器 docker stop clickhouse-server # 删除容器 docker rm clickhouse-server
10. 注意事项
-
如果需要自定义配置,可以修改
/hskj/clickhouse/config
目录中的配置文件,然后重启容器使配置生效:docker restart clickhouse-server
-
确保宿主机的目录权限正确,避免容器无法访问映射的目录。
通过以上步骤,你可以在 CentOS 7.9 上成功安装并运行 ClickHouse,同时将数据目录和配置文件目录映射到宿主机,确保数据的持久化和配置的灵活性。