ClickHouse — высокопроизводительная отечественная аналитическая база данных с открытым исходным кодом, разработанная в Яндексе.
Внимание! При установке ClickHouse следует использовать внешний конфигурационный файл и внешний каталог хранения данных для того, чтобы при перезапуске контейнера вся информация оставалась в сохранности.
Для установки выполнить следующие действия:
1) Cоздать необходимые каталоги, в которых будут храниться настройки, журналы и базы данных ClickHouse:
sudo mkdir -p /opt/clickhouse/{data,etc,log}
2) Запустить ClickHouse в пробном режиме:
sudo docker run -d --name clickhouse_1 --ulimit nofile=262144:262144 -v /opt/clickhouse/log:/var/log/clickhouse-server -v /opt/clickhouse/data:/var/lib/clickhouse yandex/clickhouse-server
3) Убедиться, что соединение с сервером работает:
sudo docker run -it --rm --link clickhouse_1:clickhouse-server yandex/clickhouse-client --host clickhouse-server
4) Проверить, что сервер отвечает на запросы:
SELECT now()
┌───────────────now()─┐
│ 2021-11-10 08:46:45 │
└─────────────────────┘
1 rows in set. Elapsed: 0.003 sec.
e29c32808cc4 :) select version();
SELECT version()
┌─version()─┐
│ 21.11.2.2 │
└───────────┘
5) Выполнить экспорт конфигурационных файлов сервера в каталог хоста, чтобы позднее их можно было бы изменять:
sudo docker exec -it clickhouse_1 cat /etc/clickhouse-server/config.xml > config.xml
sudo docker exec -it clickhouse_1 cat /etc/clickhouse-server/users.xml > users.xml
sudo mv config.xml users.xml
6) Остановить сервер ClickHouse и запустить его с внешними файлами конфигурации:
sudo docker stop clickhouse_1
sudo docker rm clickhouse_1
sudo docker run -d --restart=always --name clickhouse_1 --ulimit nofile=262144:262144 -p 127.0.0.1:8123:8123 -p 127.0.0.1:9000:9000 -v /opt/clickhouse/log:/var/log/clickhouse-server -v /opt/clickhouse/data:/var/lib/clickhouse -v /opt/clickhouse/etc/users.xml:/etc/clickhouse-server/users.xml -v /opt/clickhouse/etc/config.xml:/etc/clickhouse-server/config.xml yandex/clickhouse-server
7) Проверить доступность сервера, как было показано выше:
sudo docker run -it --rm --link clickhouse_1:clickhouse-server yandex/clickhouse-client --host clickhouse-server
8) Проверить, что сервер отвечает на запросы:
SELECT now()
┌───────────────now()─┐
│ 2021-11-10 08:50:01 │
└─────────────────────┘
1 rows in set. Elapsed: 0.003 sec.
e29c32808cc4 :) select version();
SELECT version()
┌─version()─┐
│ 21.11.2.2 │
└───────────┘
Сервер ClickHouse развернут.
Посмотреть видеоурок: Работа докера на примере ClickHouse