当前位置: 首页 > 工具软件 > QuestDB > 使用案例 >

通过Docker开始使用QuestDB

蒋文光
2023-12-01

QuestDB在Docker Hub上有Linux/macOS和Windows的镜像。

安装Docker

在我们开始之前,您需要安装Docker。您可以在官方文档中找到有关平台的指南。

QuestDB镜像

一旦安装了Docker,你需要从Docker Hub中提取QuestDB的镜像并创建一个容器。你可以使用docker run在一个命令中完成这两个操作:

docker run -p 9000:9000 \
 -p 9009:9009 \
 -p 8812:8812 \
 -p 9003:9003 \
 questdb/questdb

选项

ArgumentDescription
-pPort to publish to the host
-vTo bind mount a volume

- p 参数

该参数将发布一个端口到主机,你可以指定:

- v
QuestDB的 root_directory 将位于以下位置:

Linux/root/.questdb
WindowsC:\questdb

容器状态
你可以通过 docker ps 查看你的容器状态,它还列出了我们发布的端口:

docker ps

导入数据和发送查询

现在QuestDB正在运行,你可以开始与它交互了:

  • 如果您暴露了 9000 端口,您可以访问我们的 REST 页面
  • 如果您暴露了 8812 端口,请关注我们的 Postgres 页面
  • 如果您暴露了 9009 端口,请查看我们的 InfluxDB 页面

数据持久性

挂载卷

卷可以挂载到QuestDB Docker容器,以便数据可以持久化或服务器配置设置可以传递给实例。下面的例子演示了如何在Docker run 命令中使用 -v 标志将当前目录挂载到一个QuestDB容器中:

docker run -p 9000:9000 \
 -p 9009:9009 \
 -p 8812:8812 \
 -p 9003:9003 \
 -v "$(pwd):/root/.questdb/" questdb/questdb

然后,当前目录将数据持久化到磁盘,以方便迁移或备份:

Current directory contents
├── conf
│      └── server.conf
├── db
└── public


关于将QuestDB服务器设置传递到Docker容器的详细信息,请参见服务器配置文档中的Docker部分。

写入日志到磁盘

当将一个卷挂载到Docker容器时,日志配置文件可能会在 /conf/log.conf 容器中提供:

Current directory contents
└── conf
    ├── log.conf
    └── server.conf

例如,可以创建一个包含以下内容的文件:

./conf/log.conf

# list of configured writers
writers=file,stdout,http.min

# file writer
w.file.class=io.questdb.log.LogFileWriter
w.file.location=questdb-docker.log
w.file.level=INFO,ERROR,DEBUG

# stdout
w.stdout.class=io.questdb.log.LogConsoleWriter
w.stdout.level=INFO

# min http server, used monitoring
w.http.min.class=io.questdb.log.LogConsoleWriter
w.http.min.level=ERROR
w.http.min.scope=http-min-server

当前目录可以挂载:

Mounting the current directory to a QuestDB container
docker run -p 9000:9000 \
 -p 9009:9009 \
 -p 8812:8812 \
 -p 9003:9003 \
 -v "$(pwd):/root/.questdb/" questdb/questdb

容器日志将使用 conf/log.conf 文件中提供的日志级别和文件名写入磁盘。可以在 ./questdb-docker.log 中查看日志:

Current directory tree
├── conf
│  ├── log.conf
│  └── server.conf
├── db
│  ├── table1
│  └── table2
├── public
│  ├── ui / assets
│  ├── ...
│  └── version.txt
└── questdb-docker.log

有关日志记录的更多信息,请参阅配置参考文档。

重新启动现有容器

运行以下命令将为QuestDB映像创建一个新的容器:

docker run -p 9000:9000 \
 -p 9009:9009 \
 -p 8812:8812 \
 -p 9003:9003 \
 questdb/questdb

通过给容器命名 --name container_name,我们有一个简单的方法来引用稍后由run创建的容器:

docker run -p 9000:9000 \
 -p 9009:9009 \
 -p 8812:8812 \
 -p 9003:9003 \
 --name docker_questdb \
 questdb/questdb

如果我们想在这个容器停止后再使用它和它的数据,我们可以使用以下命令:

# bring the container up
docker start docker_questdb
# shut the container down
docker stop docker_questdb

或者,用户可以通过'docker ps'获取运行容器的ID,并使用 UUID短标识符 重新启动它:

Starting a container by ID
docker start dd363939f261
 类似资料: