在 docker 中启动 clickhouse-server 失败并出现来自 Poco 的错误

Starting clickhouse-server in docker fails with error from Poco

我正在尝试使用官方 docker 容器启动 clickhouse-server。我拉了最新的一个,尝试启动它并收到以下错误:

Poco::异常。代码:1000,e.code() = 0,e.displayText() = 未找到:记录器,e.what() = 未找到

我正尝试在 Mac 上使用 High Sierra 执行此操作,怀疑这可能与此问题有关。我是这样的 运行 服务器:

docker run --name some-clickhouse-server --ulimit nofile=262144:262144 -v /Users/dmitrysmirnov/clickhouse/config.xml:/etc/clickhouse-server/config.xml yandex/clickhouse-server

配置:

<yandex>
    <listen_host>0.0.0.0</listen_host>
    <listen_try>1</listen_try>

    <!--
    <logger>
        <level>trace</level>
        <console>1</console>
    </logger>
    -->
</yandex>

欢迎任何建议/调试想法,谢谢!

其实不是ClickHouse本身的问题。 docker run 命令有误。 -v 选项用于设置音量,而不是特定文件。因此,从字面上看,您创建了一个路径为 /etc/clickhouse-server/config.xml/ 的目录,这是 Clickhouse 预热的制动器。

相反,我建议您将 config.xml 放在目录中,并将 link 带有 config.d 文件夹的卷放在 ClickHouse 映像中。 config.d,还有users.d,还有其他的.d都被认为是这样使用的。所以:

docker run --name clickhouse-server -v `(pwd)`/dir/:/etc/clickhouse-server/config.d yandex/clickhouse-server

此外,检查 docker run 的其他选项也是个好主意。顺便说一句:我发现 -d 选项是必须的,因为分离容器使我的终端更有用。