未验证 提交 ec582d39 编写于 作者: S skye0207 提交者: GitHub

add docker doc

上级 3806a2da
# 通过Docker快速体验TDengine
由于目前TDengine2.0的服务器仅能在Linux系统上安装和运行,如果开发者使用的是Mac或Windows系统,可能需要安装虚拟机或远程连接Linux服务器,来使用TDengine。Docker轻巧快速,可以作为一个可行,经济,高效的替代方案。下文准备一步一步介绍,如何通过Docker快速使用TDengine,可用于开发,测试,和备份数据。
 
### 下载Docker
docker的下载可以参考[docker官网文档Get Docker部分](https://docs.docker.com/get-docker/)
安装成功后可以查看下docker版本。
```bash
$ docker -v
Docker version 20.10.5, build 55c4c88
```
 
 
### 在docker容器中运行TDengine
+ 使用命令拉取tdengine镜像,并使它在后台运行。
```bash
$ docker run -d tdengine/tdengine
cdf548465318c6fc2ad97813f89cc60006393392401cae58a27b15ca9171f316
```
  **run**:和前面的docker命令组合起来,运行一个容器。
  **-d**:让容器在后台运行。
  **tdengine/tdengine**:拉取的TDengine官方发布的应用镜像
  **cdf548465318c6fc2ad97813f89cc60006393392401cae58a27b15ca9171f316**
  返回的长字符是容器ID,我们可以通过容器ID来查看对应的容器。
 
+ 确认容器是否已经运行起来了。
```bash
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS ···
cdf548465318 tdengine/tdengine "taosd" 14 minutes ago Up 14 minutes ···
```
  **docker ps**:列出所有在运行中的容器信息。
  **CONTAINER ID**:容器ID。
  **IMAGE**:使用的镜像。
  **COMMAND**:启动容器时运行的命令。
  **CREATED**:容器创建时间。
  **STATUS**:容器状态。UP表示运行中。
 
+ 进入docker容器内,使用tdengine。
```bash
$ docker exec -it cdf548465318 /bin/bash
root@cdf548465318:~/TDengine-server-2.0.13.0#
```
  **exec**:通过docker exec命令进入容器,如果退出容器不会停止。
  **-i**:进入交互模式。
  **-t**:指定一个终端。
  **cdf548465318**:容器ID,需要根据具体情况进行修改。
  **/bin/bash**:载入容器后运行bash来进行交互。
 
+ 进入容器后,执行TDengine命令行程序。
```bash
$ root@cdf548465318:~/TDengine-server-2.0.13.0# taos
Welcome to the TDengine shell from Linux, Client Version:2.0.13.0
Copyright (c) 2020 by TAOS Data, Inc. All rights reserved.
taos>
```
TDengine终端连接服务成功,打印出了欢迎消息和版本信息。如果失败,会有错误信息打印出来。
在TDengine终端中,可以通过SQL命令来创建/删除数据库,表,超级表等,并可以进行插入查询操作。具体可以参考[TDengine官网文档的TAOS SQL部分](https://www.taosdata.com/cn/documentation/taos-sql)
 
 
### 通过taosdemo进一步了解TDengine
+ 接上面的步骤,先退出TDengine命令行程序。
```bash
$ taos> q
root@cdf548465318:~/TDengine-server-2.0.13.0#
```
 
+ 在Linux终端执行taosdemo。
```bash
$ root@cdf548465318:~/TDengine-server-2.0.13.0# taosdemo
###################################################################
# Server IP: localhost:0
# User: root
# Password: taosdata
# Use metric: true
# Datatype of Columns: int int int int int int int float
# Binary Length(If applicable): -1
# Number of Columns per record: 3
# Number of Threads: 10
# Number of Tables: 10000
# Number of Data per Table: 100000
# Records/Request: 1000
# Database name: test
# Table prefix: t
# Delete method: 0
# Test time: 2021-04-13 02:05:20
###################################################################
```
回车后,该命令将新建一个数据库test,并且自动创建一张超级表meters,并以超级表meters为模版创建了1万张表,表名从"t0"到"t9999"。每张表有10万条记录,每条记录有f1,f2,f3三个字段,时间戳ts字段从"2017-07-14 10:40:00 000" 到"2017-07-14 10:41:39 999"。每张表带有areaid和loc两个标签TAG, areaid被设置为1到10, loc被设置为"beijing"或者“shanghai"。
 
+ 运行taodemo命令的结果,可以进入TDengine命令行,进行验证。
  **进入命令行。**
```bash
$ root@cdf548465318:~/TDengine-server-2.0.13.0# taos
Welcome to the TDengine shell from Linux, Client Version:2.0.13.0
Copyright (c) 2020 by TAOS Data, Inc. All rights reserved.
taos>
```
  **查看数据库。**
```bash
$ taos> show databases;
name | created_time | ntables | vgroups | ···
test | 2021-04-13 02:14:15.950 | 10000 | 6 | ···
log | 2021-04-12 09:36:37.549 | 4 | 1 | ···
```
  **查看超级表。**
```bash
$ taos> use test;
Database changed.
$ taos> show stables;
name | created_time | columns | tags | tables |
=====================================================================================
meters | 2021-04-13 02:14:15.955 | 4 | 2 | 10000 |
Query OK, 1 row(s) in set (0.001737s)
```
  **查看表,限制输出十条。**
```bash
$ taos> select * from test.t0 limit 10;
ts | f1 | f2 | f3 |
====================================================================
2017-07-14 02:40:01.000 | 3 | 9 | 0 |
2017-07-14 02:40:02.000 | 0 | 1 | 2 |
2017-07-14 02:40:03.000 | 7 | 2 | 3 |
2017-07-14 02:40:04.000 | 9 | 4 | 5 |
2017-07-14 02:40:05.000 | 1 | 2 | 5 |
2017-07-14 02:40:06.000 | 6 | 3 | 2 |
2017-07-14 02:40:07.000 | 4 | 7 | 8 |
2017-07-14 02:40:08.000 | 4 | 6 | 6 |
2017-07-14 02:40:09.000 | 5 | 7 | 7 |
2017-07-14 02:40:10.000 | 1 | 5 | 0 |
Query OK, 10 row(s) in set (0.003638s)
```
  **查看t0表的标签值。**
```bash
$ taos> select areaid, loc from test.t0;
areaid | loc |
===========================
10 | shanghai |
Query OK, 1 row(s) in set (0.002904s)
```
 
 
### 开发时连接上通过docker启动的TDengine
连接并且使用在docker容器中的启动的TDengine,有以下两个思路:
1. 通过端口映射(-p),将容器内部开放的网络端口映射到宿主机的指定端口上。通过挂载本地目录(-v),可以实现宿主机与容器内部的数据同步,防止容器删除后,数据丢失。
```bash
$ docker run -d -v /etc/taos:/etc/taos -p 6041:6041 tdengine/tdengine
526aa188da767ae94b244226a2b2eec2b5f17dd8eff592893d9ec0cd0f3a1ccd
$ curl -u root:taosdata -d 'show databases' 127.0.0.1:6041/rest/sql
{"status":"succ","head":["name","created_time","ntables","vgroups","replica","quorum","days","keep1,keep2,keep(D)","cache(MB)","blocks","minrows","maxrows","wallevel","fsync","comp","precision","status"],"data":[],"rows":0}
```
  第一条命令,启动了一个运行了TDengine的docker容器,并且将容器的6041端口映射到宿主机的6041端口上。
  第二条命令,通过RESTful接口访问TDengine,这时连接的是本机的6041端口,可见连接成功。
 
2. 直接通过exec命令,进入到docker容器中去做开发。
```bash
$ docker exec -it 526aa188da /bin/bash
```
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册