DOCKER方式单机部署TiDB V5.4.1

该文描述了在一台具有32核64GB内存(可调整为16核32GB)的虚拟机上,使用Docker容器部署TiDB分布式数据库的过程。首先,检查了当前没有运行的Docker容器和镜像。然后,通过Docker运行命令创建并启动PD服务,接着依次启动多个Tikv节点,最后启动TiDB服务,将它们连接到PD服务器。所有服务都映射了相应的端口并挂载了本地目录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

备注:服务器IP:192.168.31.110

服务器配置:虚拟机 32C64G(可16C32G)

部署过程脚本如下:

[root@TiDB /]# docker ps  -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[root@TiDB /]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
[root@TiDB /]# docker images
REPOSITORY               TAG                 IMAGE ID            CREATED             SIZE
docker.io/pingcap/tikv   latest              55d4b11a83f5        7 days ago          548 MB
docker.io/pingcap/tidb   latest              ad7b92852e6c        7 days ago          197 MB
docker.io/pingcap/pd     latest              f7bf6aed1f6e        7 days ago          161 MB
[root@TiDB /]# docker run -d --name pd1 -p 2379:2379 -p 2380:2380 -v /etc/localtime:/etc/localtime:ro -v /tidb:/tidb pingcap/pd:latest --name="pd1" --data-dir="/tidb/pd1" --client-urls="http://0.0.0.0:2379" --advertise-client-urls="http://192.168.31.110:2379" --peer-urls="http://0.0.0.0:2380" --advertise-peer-urls="http://192.168.31.110:2380" --initial-cluster="pd1=http://192.168.31.110:2380"
6f6bc60c1085722cd3abd123d812c10cae6736da9965e26d9acb2c87e927d24c
[root@TiDB /]# docker run -d --name tikv1
"docker run" requires at least 1 argument(s).
See 'docker run --help'.

Usage:  docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

Run a command in a new container
[root@TiDB /]#   -p 20160:20160
-bash: -p: command not found
[root@TiDB /]#   --ulimit nofile=1000000:1000000
-bash: --ulimit: command not found
[root@TiDB /]#   -v /etc/localtime:/etc/localtime:ro
-bash: -v: command not found
[root@TiDB /]#   -v /tidb:/tidb
-bash: -v: command not found
[root@TiDB /]#   pingcap/tikv:latest
-bash: pingcap/tikv:latest: No such file or directory
[root@TiDB /]#   --addr="0.0.0.0:20160"
-bash: --addr=0.0.0.0:20160: command not found
[root@TiDB /]#   --advertise-addr="192.168.31.110:20160"
-bash: --advertise-addr=192.168.31.110:20160: command not found
[root@TiDB /]#   --data-dir="/tidb/tikv1"
-bash: --data-dir=/tidb/tikv1: No such file or directory
[root@TiDB /]#   --pd="192.168.31.110:2379"
-bash: --pd=192.168.31.110:2379: command not found
[root@TiDB /]# docker run -d --name tikv1 -p 20160:20160 --ulimit nofile=1000000:1000000 -v /etc/localtime:/etc/localtime:ro -v /tidb:/tidb pingcap/tikv:latest --addr="0.0.0.0:20160" --advertise-addr="192.168.31.110:20160" --data-dir="/tidb/tikv1" --pd="192.168.31.110:2379"
bedfc13a3acd1559bf87ed683583f148847d925201530d3a29f5e9bbbdb64a27
[root@TiDB /]# docker run -d --name tikv2 -p 20161:20161 --ulimit nofile=1000000:1000000 -v /etc/localtime:/etc/localtime:ro -v /tidb:/tidb pingcap/tikv:latest --addr="0.0.0.0:20161" --advertise-addr="192.168.31.110:20161" --data-dir="/tidb/tikv2" --pd="192.168.31.110:2379"
3bc1e59d74afe74376e068659c579e7b38b8dba4977db565fa3cbd245fb5e311
[root@TiDB /]# docker run -d --name tikv3 -p 20162:20162 --ulimit nofile=1000000:1000000 -v /etc/localtime:/etc/localtime:ro -v /tidb:/tidb pingcap/tikv:latest --addr="0.0.0.0:20162" --advertise-addr="192.168.31.110:20162" --data-dir="/tidb/tikv3" --pd="192.168.31.110:2379"
6ae89bbec860270134b83ed4530ee2388ff3098789715215284db80a1704f017
[root@TiDB /]# docker run -d --name tidb  -p 4000:4000  -p 10080:10080  -v /etc/localtime:/etc/localtime:ro pingcap/tidb:latest --store=tikv  --path="192.168.31.110:2379"
85701d843d99b2228d10ed41f4c88001b5a80ee885088f0be79eacb1447d8911
[root@TiDB /]#

85701d843d99b2228d10ed41f4c88001b5a80ee885088f0be79eacb1447d8911
[root@TiDB /]# docker ps -a
CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS              PORTS                                              NAMES
85701d843d99        pingcap/tidb:latest   "/tidb-server --st..."   58 seconds ago      Up 58 seconds       0.0.0.0:4000->4000/tcp, 0.0.0.0:10080->10080/tcp   tidb
6ae89bbec860        pingcap/tikv:latest   "/tikv-server --ad..."   2 minutes ago       Up 2 minutes        20160/tcp, 0.0.0.0:20162->20162/tcp                tikv3
3bc1e59d74af        pingcap/tikv:latest   "/tikv-server --ad..."   2 minutes ago       Up 2 minutes        20160/tcp, 0.0.0.0:20161->20161/tcp                tikv2
bedfc13a3acd        pingcap/tikv:latest   "/tikv-server --ad..."   3 minutes ago       Up 3 minutes        0.0.0.0:20160->20160/tcp                           tikv1
6f6bc60c1085        pingcap/pd:latest     "/pd-server --name..."   7 minutes ago       Up 7 minutes        0.0.0.0:2379-2380->2379-2380/tcp                   pd1


http://192.168.31.110:2379/dashboard 

要使用docker-compose安装TiDB v7.1.1,您需要编写一个docker-compose.yml文件来定义和配置您的服务。以下是一个示例的docker-compose.yml文件,用于安装TiDB v7.1.1: ```yaml version: '3' services: tidb: image: pingcap/tidb:v7.1.1 ports: - "4000:4000" environment: - MYSQL_ROOT_PASSWORD=your_password volumes: - tidb_data:/var/lib/mysql tikv: image: pingcap/tikv:v7.1.1 volumes: - tikv_data:/var/lib/tikv pd: image: pingcap/pd:v7.1.1 ports: - "2379:2379" - "2380:2380" volumes: - pd_data:/var/lib/pd volumes: tidb_data: tikv_data: pd_data: ``` 在上面的示例中,我们定义了三个服务:tidb、tikv和pd。tidb服务使用pingcap/tidb:v7.1.1镜像,将容器的4000端口映射到主机的4000端口,并设置了MYSQL_ROOT_PASSWORD环境变量来设置root用户的密码。tikv和pd服务分别使用pingcap/tikv:v7.1.1和pingcap/pd:v7.1.1镜像,并设置了相应的数据卷。 要安装TiDB v7.1.1,请按照以下步骤操作: 1. 创建一个名为docker-compose.yml的文件,并将上述示例内容复制到文件中。 2. 根据需要修改docker-compose.yml文件中的配置,例如端口映射和密码。 3. 打开终端,导航到包含docker-compose.yml文件的目录。 4. 运行以下命令启动TiDB集群: ```bash docker-compose up -d ``` 这将启动TiDB集群,并将其作为后台服务运行。您可以使用以下命令检查服务的状态: ```bash docker-compose ps ``` 如果一切顺利,您应该能够看到tidb、tikv和pd服务正在运行。 请注意,上述示例仅用于演示目的。在实际部署中,您可能需要根据您的需求进行更多的配置和调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值