【clickhouse】docker-compose启动clickhouse数据库

1. 准备

创建 clickhouse目录,进入该目录

1.1 yml文件

创建docker-compose.yml文件如下

version: '3'
services:
  ch_server:
    image: yandex/clickhouse-server
    ports:
      - "8123:8123"
      - "9100:9100"
    volumes:
      - ./conf/docker_related_config.xml:/etc/clickhouse-server/config.d/docker_related_config.xml:rw
      - ./conf/config.xml:/etc/clickhouse-server/config.xml:rw
      - ./conf/users.xml:/etc/clickhouse-server/users.xml:rw
      - /etc/localtime:/etc/localtime:ro
      - ./log:/var/log/clickhouse-server
      - ./db:/var/lib/clickhouse:rw
  ch_client:
    image: yandex/clickhouse-client
    entrypoint:
      - /bin/sleep
    command:
      - infinity

1.2 获取配置文件

  • 临时启动一个clickhouse容器
[root@liubei clickhouse]# docker run -d --name chtmp yandex/clickhouse-server
[root@liubei clickhouse]# docker ps |grep chtmp
db593c4ad94b        yandex/clickhouse-server                                                 "/entrypoint.sh"         22 seconds ago      Up 21 seconds       8123/tcp, 9000/tcp, 9009/tcp                                                               chtmp
  • 为配置文件创建一个conf目录,保证至少755权限
[root@liubei clickhouse]# mkdir conf
[root@liubei clickhouse]# ll
total 5
drwxr-xr-x 2 root root 4096 Jun 19 13:24 conf
  • 从容器中拷贝出配置文件
[root@liubei clickhouse]# cd conf/
[root@liubei conf]# docker cp chtmp:/etc/clickhouse-server/config.d/docker_related_config.xml ./
[root@liubei conf]# docker cp chtmp:/etc/clickhouse-server/config.xml ./
[root@liubei conf]# docker cp chtmp:/etc/clickhouse-server/users.xml ./
-rw-rw-rw- 1 root root 60072 Dec 26  2021 config.xml
-rw-rw-r-- 1 root root   314 Dec 26  2021 docker_related_config.xml
-rw-rw-rw- 1 root root  6248 Dec 26  2021 users.xml
  • 关闭临时容器
[root@liubei clickhouse]# docker stop chtmp
chtmp
[root@liubei clickhouse]# docker rm chtmp
chtmp

2. 启动

clickhouse目录下执行:

[root@liubei clickhouse]# docker-compose up -d
Creating network "clickhouse_default" with the default driver
......
Creating clickhouse_ch_server_1 ... done
Creating clickhouse_ch_client_1 ... done
[root@liubei clickhouse]# docker-compose ps
         Name                  Command         State                                 Ports
-------------------------------------------------------------------------------------------------------------------------
clickhouse_ch_client_1   /bin/sleep infinity   Up
clickhouse_ch_server_1   /entrypoint.sh        Up      0.0.0.0:8123->8123/tcp, 9000/tcp, 9009/tcp, 0.0.0.0:9100->9100/tcp

3. 测试

此时我们没有启动密码,进入容器直接登录即可。

  • 进入容器
[root@liubei clickhouse]# docker ps |grep click
5c7d20e24a1a        yandex/clickhouse-server                                                 "/entrypoint.sh"         6 minutes ago       Up 6 minutes        9000/tcp, 0.0.0.0:8123->8123/tcp, 0.0.0.0:9100->9100/tcp, 9009/tcp                         clickhouse_ch_server_1
8d56441b8e1c        yandex/clickhouse-client                                                 "/bin/sleep infinity"    6 minutes ago       Up 6 minutes                                                                                                   clickhouse_ch_client_1
[root@liubei clickhouse]# docker exec -it 5c7d bash
root@5c7d20e24a1a:/#
  • 登录clickhouse
root@5c7d20e24a1a:/# clickhouse-client
ClickHouse client version 21.12.3.32 (official build).
Connecting to localhost:9000 as user default.
Connected to ClickHouse server version 21.12.3 revision 54452.

5c7d20e24a1a :) show databases;

SHOW DATABASES

Query id: 07305aa0-1c7e-47c9-bf16-de78b763c01d

┌─name───────────────┐
│ INFORMATION_SCHEMA │
│ default            │
│ information_schema │
│ system             │
└────────────────────┘

4 rows in set. Elapsed: 0.001 sec.

5c7d20e24a1a :)

4. 用户名密码

4.1 默认用户

  • 修改刚才拷贝的配置文件中的users.xml文件

修改<users><default>部分,<password></password>一行如下

    <users>
        <!-- If user name was not specified, 'default' user is used. -->
        <default>
            ......
            <password>liubei@161</password>
            <networks>
                <ip>::/0</ip>
            </networks>
            <profile>default</profile>
            <quota>default</quota>
        </default>
    </users>
  • 测试
root@5c7d20e24a1a:/# clickhouse-client --password liubei@161
ClickHouse client version 21.12.3.32 (official build).
Connecting to localhost:9000 as user default.
Connected to ClickHouse server version 21.12.3 revision 54452.

5c7d20e24a1a :) show databases

SHOW DATABASES

Query id: 281c3ebe-73f0-45b5-a2bc-fc9757dfffe7

┌─name───────────────┐
│ INFORMATION_SCHEMA │
│ default            │
│ information_schema │
│ system             │
└────────────────────┘
4 rows in set. Elapsed: 0.001 sec.

4.2 创建其他用户

<users>中,为liubei用户 添加<liubei>部分,并配置密码。(建议在 <default>后边)

    <users>
        <!-- If user name was not specified, 'default' user is used. -->
        <default>
            ......
        </default>
        <liubei>
            <password>liubei@161</password>
            <networks incl="networks" replace="replace">
                <ip>::/0</ip>
            </networks>
            <profile>default</profile>
            <quota>default</quota>
            <allow_databases>
                <database>sdcs</database>
            </allow_databases>
        </liubei>
    </users>
  • 测试
root@5c7d20e24a1a:/# clickhouse-client -u liubei --password liubei@161
ClickHouse client version 21.12.3.32 (official build).
Connecting to localhost:9000 as user liubei.
Connected to ClickHouse server version 21.12.3 revision 54452.
5c7d20e24a1a :) 

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Docker Compose是一个用于定义和运行多容器Docker应用程序的工具。使用Docker Compose可以轻松地启动和停止多个容器,并且可以通过一个简单的配置文件来定义容器之间的关系和依赖关系。在引用中提到的docker-compose启动mysql,是指使用Docker Compose来启动一个MySQL数据库容器。通过配置docker-compose.yml文件,可以指定MySQL容器的镜像、端口、数据卷等信息。启动后,可以使用docker-compose ps命令查看容器状态,使用docker-compose stop命令停止容器,使用docker-compose restart命令重启容器,使用docker-compose down命令关闭容器并删除相关资源。除了使用Docker Compose,还可以使用其他方式来启动MySQL容器,如使用Helm启动MySQL高可用集群、使用Docker Compose启动单节点MySQL等。同时,Docker Compose是一个用于定义和运行多容器Docker应用程序的工具。使用Docker Compose可以轻松地启动和停止多个容器,并且可以通过一个简单的配置文件来定义容器之间的关系和依赖关系。在引用中提到的docker-compose启动mysql,是指使用Docker Compose来启动一个MySQL数据库容器。通过配置docker-compose.yml文件,可以指定MySQL容器的镜像、端口、数据卷等信息。启动后,可以使用docker-compose ps命令查看容器状态,使用docker-compose stop命令停止容器,使用docker-compose restart命令重启容器,使用docker-compose down命令关闭容器并删除相关资源。除了使用Docker Compose,还可以使用其他方式来启动MySQL容器,如使用Helm启动MySQL高可用集群、使用Docker Compose启动单节点MySQL等。同时,还可以使用web管理工具如phpMyAdmin来管理MySQL数据库。在测试和开发环境中,使用Docker Compose启动MySQL容器可以方便地进行开发和测试。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

玄德公笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值