一、安装镜像
bash
docker pull docker.1ms.run/clickhouse/clickhouse-server:latest
如果执行报错,可以尝试修改docker镜像源地址为国内镜像。
修改/etc/docker/daemon.json,如果文件不存在,则创建一个,手动写入以下内容:
html
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://docker.1ms.run",
"https://docker.xuanyuan.me"
]
}
或者直接执行命令:
bash
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://docker.1ms.run",
"https://docker.xuanyuan.me"
]
}
EOF
修改完成后需要重启docker服务
bash
systemctl restart docker
二、创建挂载目录
1.在服务器上先新建挂载目录,目录结构如下:
bash
挂载路径
└── clickhouse
│
└──node1
├── data
├── logs
└─── configs
├─config.d
└─user.d

2.在config.d目录下创建2个配置文件:

docker_related_config.xml
XML
<clickhouse>
<!-- Listen wildcard address to allow accepting connections from other containers and host network. -->
<listen_host>::</listen_host>
<listen_host>0.0.0.0</listen_host>
<listen_try>1</listen_try>
<!--
<logger>
<console>1</console>
</logger>
-->
</clickhouse>
macros.xml
XML
<clickhouse>
<macros>
<shard>01</shard>
<replica>01</replica>
<cluster>cluster_1shards_2replicas</cluster>
</macros>
</clickhouse>
三、创建docker容器
bash
docker run -d \
--name clickhouse-node1 \
--hostname clickhouse-node1 \
-p 18123:8123 \
-p 19000:9000 \
-e CLICKHOUSE_DB=dbname \
-e CLICKHOUSE_USER=dbuser \
-e CLICKHOUSE_PASSWORD=dbpassword \
-e CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT=1 \
-v /home/user/docker/docker-mount/clickhouse/node1/configs/config.d:/etc/clickhouse-server/config.d \
-v /home/user/docker/docker-mount/clickhouse/node1/configs/users.d:/etc/clickhouse-server/users.d \
-v /home/user/docker/docker-mount/clickhouse/node1/data:/var/lib/clickhouse \
-v /home/user/docker/docker-mount/clickhouse/node1/logs:/var/log/clickhouse-server \
--ulimit nofile=262144:262144 \
clickhouse/clickhouse-server:latest
其中CLICKHOUSE_DB、CLICKHOUSE_USER、CLICKHOUSE_PASSWORD分别指定的数据库实例、用户名和密码。
容器创建完成后,clickhouse就安装好了,进行连接测试。