Single Node Rapid Deployment of Docker Containers

First of all, after successfully deploying and installing Docker in a Linux environment, in order to perform a single-node rapid deployment of Docker containers, you need to follow the steps below to perform the deployment process:

1. Prerequisites

Ensure that your Linux system has successfully installed the Docker container engine and that the Docker service is running normally.

2. Environment preparation

Environment description

Configure the git docker docker-compose environment in advance;

# Note: Check your docker-compose version against the following relationships, and modify the docker-compose.yml version field of the configuration file downloaded in 2.1 as appropriate
 docker-compose.yml version| Docker Engine version| Docker Compose version
  2.4;                       17.12.0+;              1.21.0+
  2.3;                       17.06.0+;              1.16.0+
  2.2;                       1.13.0+;               1.13.0+
  2.1;                       1.12.0+;               1.9.0+
  2.0;                       1.10.0+ ;              1.6.0+

Pull-out Container

# Pull dingo-store
docker pull dingodatabase/dingo-store:latest
# Pull dingo
docker pull dingodatabase/dingo:latest

3. Starting containers

Here we need to start containers based on docker-compose, so let’s first go pull: docker-compose.

Pull the corresponding docker-compose configuration

# Method 1 
curl https://github.com/dingodb/dingo-deploy/blob/main/container/docker-compose/docker-compose.single.yml -o docker-compose.yml
# Method 2
git clone https://github.com/dingodb/dingo-deploy.git
cd  dingo-deploy/container/docker-compose

Configuration file description:

  • docker-compose.yml for single-node multi-service, where the full startup contains 3 coordinator, 3 store, 3 index, 1 executor, 1 web (proxy);

  • docker-compose.single.yml is a single node, single service, where the full startup contains 1 coordinator, 1 store, 1 index, 1 executor, 1 web (proxy); * coordinator, store, index use host network, executor, web (proxy) use net network.

  • The coordinator, store, and index use the host network, and the executor and web(proxy) use the net network.

Start the corresponding container

# Change to your own ip address, do not use 127.0.0.1 (web(proxy) and executor use net network, 127.0.0.1 does not point to host).
# docker-compose.yml is in the current directory and has the same name, you can not use the -f parameter.
DINGO_HOST_IP=x.x.x.x docker-compose -f ./docker-compose.yml up -d

4. Viewing cluster status

Check container status

Checks if all containers in the yml configuration file are in the Up state.

docker ps

View process status

  • View coordinator status

# Enter the container
docker exec -it coordinator1 bash
cd build/bin/

[root@coordinator1 bin]#  ./dingodb_client --method=GetCoordinatorMap
  • Check the Store status

# Enter the container
docker exec -it coordinator1 bash
cd build/bin/

[root@coordinator1 bin]# ./dingodb_client --method=GetStoreMap
  • Checking the status of the Executor. To check the status of executor, just check the log and make sure mysql init is successful.

docker logs executor
  • Check the status of the Proxy. Web(Proxy) can be viewed through swagger, you need to replace the IP in the URL with your own IP address.

http://localhost:13000/swagger-ui/index.html