一、安装docker
1.1 卸载老版本docker
yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
1.2 安装依赖包并设置官方镜像源
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
1.3 安装最新版docker
yum install docker-ce docker-ce-cli containerd.io
1.4 启动docke
systemctl start docker
1.5 使用阿里云镜像仓库
访问容器镜像服务
1.6 修改配置
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://**.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
二、安装ClickHouse
2.1 拉取clickhouse的docker镜像
docker pull yandex/clickhouse-server
2.2 创建目录并更改权限
mkdir -p /app/cloud/clickhouse/data
mkdir -p /app/cloud/clickhouse/conf
mkdir -p /app/cloud/clickhouse/log
chmod -R 777 /app/cloud/clickhouse/data
chmod -R 777 /app/cloud/clickhouse/conf
chmod -R 777 /app/cloud/clickhouse/log
2.3 创建临时容器
docker run --rm -d --name=clickhouse-server \
--ulimit nofile=262144:262144 \
-p 8123:8123 -p 9009:9009 -p 9090:9000 \
yandex/clickhouse-server
2.4 复制临时容器内配置文件到宿主机
docker cp clickhouse-server:/etc/clickhouse-server/config.xml /app/cloud/clickhouse/conf/config.xml
docker cp clickhouse-server:/etc/clickhouse-server/users.xml /app/cloud/clickhouse/conf/users.xml
2.5 停掉临时容器
docker stop clickhouse-server
2.6 创建default账号密码
PASSWORD=$(base64 < /dev/urandom | head -c8); echo "$PASSWORD"; echo -n "$PASSWORD" | sha256sum | tr -d '-'
执行以上命令后会在命令行打印密码明文和密码密文
2.7 修改 users.xml
vi /app/cloud/clickhouse/conf/users.xml
-
把default账号设为只读权限并设置密码
-
yandex–>users–>default–>profile 节点设为readonly
-
注释掉 yandex–>users–>default–>password 改为
<password_sha256_hex>5fd14b197c828b553de39cd42dca232f4627bdb980f7bb03ddf26e08171b11d9</password_sha256_hex>
-
节点新增 yandex–>users–>default–>password_sha256_hex 节点,填入生成的密码
<root>
<password_sha256_hex>5fd14b197c828b553de39cd42dca232f4627bdb980f7bb03ddf26e08171b11d9</password_sha256_hex>
<networks incl="networks" replace="replace">
<ip>::/0</ip>
</networks>
<profile>default</profile>
<quota>default</quota>
</root>
2.8 创建容器
docker run -d --name=clickhouse-server \
-p 8123:8123 -p 9009:9009 -p 9090:9000 \
--ulimit nofile=262144:262144 \
-v /app/cloud/clickhouse/data:/var/lib/clickhouse:rw \
-v /app/cloud/clickhouse/conf/config.xml:/etc/clickhouse-server/config.xml \
-v /app/cloud/clickhouse/conf/users.xml:/etc/clickhouse-server/users.xml \
-v /app/cloud/clickhouse/log:/var/log/clickhouse-server:rw \
yandex/clickhouse-server
2.9 用 DataGrip 连接