diff --git a/documentation20/cn/02.getting-started/01.docker/docs.md b/documentation20/cn/02.getting-started/01.docker/docs.md new file mode 100644 index 0000000000000000000000000000000000000000..8021a54536f8bd10e553baac232548dc1ab3c668 --- /dev/null +++ b/documentation20/cn/02.getting-started/01.docker/docs.md @@ -0,0 +1,226 @@ +# 通过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 +``` +