Skip to main content

Deploy NineData Community Edition

This article guides you through deploying the NineData Community Edition using Docker containerization.

Prerequisites

  • Docker is installed on the server.
  • The server architecture is Intel x86_64, with a minimum specification of 4-core CPU / 16 GB memory / 200 GB disk space.

Operation Steps

  1. Log in to the server's command line window and execute the following command:

    docker run -p 9999:9999 --privileged -v /opt/ninedata:/u01 --name ninedata -d swr.cn-east-3.myhuaweicloud.com/ninedata/ninedata:latest

    Parameter Description

    • -p 9999:9999: NineData provides services through port 9999, and this parameter maps the container's 9999 port (after the colon) to the server (before the colon), ensuring that the client browser can directly access the NineData service.
    • --privileged: Grants the container system permissions to run and access.
    • -v /opt/ninedata:/u01: Mounts the server's /opt/ninedata directory to the container's /u01 directory for data storage.
    • --name ninedata: Sets the container name to ninedata; you can specify a different container name.
    • -d swr.cn-east-3.myhuaweicloud.com/ninedata/ninedata:latest: The image address of NineData, used to pull the NineData image file.
    tip
    • NineData provides multi-regional image downloads, and you can choose the closest one to replace the image address behind -d in the command above for faster download speeds. See the Appendix for image addresses.
    • This article defaults to using the built-in MySQL in the container as the metadata database. If you need to deploy your own MySQL metadata database, see (Optional) Using an External Metadata Database.
  2. After the container starts, NineData services will automatically deploy and initialize within the container, which is expected to take about 5 to 10 minutes. You can check the initialization progress with the docker logs -f ninedata command, and wait for the following prompt to appear on the screen, indicating that the NineData service has started successfully.

    image-20250310171459303

    tip

    If you specified a different container name in step 1, replace ninedata in the above command with your actual container name.

  3. Enter the connection address of NineData in the browser to open the login page of the NineData console. The default port number for NineData services is 9999, and the initial administrator account and password are both admin. After the first login, a password change window will pop up; please change the administrator password immediately.

    image-20250310171539071

Appendix: List of NineData Community Edition Image Addresses

  • North China - Beijing: swr.cn-north-4.myhuaweicloud.com/ninedata/ninedata:latest

  • East China - Shanghai: swr.cn-east-3.myhuaweicloud.com/ninedata/ninedata:latest

  • South China - Guangzhou: swr.cn-south-1.myhuaweicloud.com/ninedata/ninedata:latest

  • Official NineData Docker Hub Address: ninedata/ninedata:latest

Frequently Asked Questions

  • Q: The browser suddenly cannot open the community edition NineData console, and a 504 error is displayed. What could be the reason?
    • Possible reason: It may be due to insufficient server disk space.
    • Solution: Please expand the disk space appropriately and execute docker restart <container ID>, then wait about 10 minutes for the startup to complete.
  • Q: After executing docker logs -f ninedata, the screen displays You can view detailed logs in the /u01/server.log and then freezes. What could be the reason?
    • Possible reason: This deployment may not be the first time, and there may be residual files in the directory used to store NineData files from the previous deployment, such as the /opt/ninedata directory.
    • Solution: Clear the previous deployment directory and re-execute the deployment steps according to this document.
  • Q: The NineData container fails to start, and the server.log contains the error "Failed to start ContainerManager" err="cannot enter cgroupv2 \"/sys/fs/cgroup/kubepods\" with domain controllers -- it is in an invalid state". What could be the reason?
    • Possible reason: Newer Linux distributions default to enabling CGroup v2, and if Docker attempts to create a sub-CGroup, it will trigger an invalid state error, causing the container to fail to start.
    • Solution: Add parameters to the Docker run command to share the host's CGroup namespace. For example: docker run --cgroupns=host -p 9999:9999 --privileged -v /opt/ninedata:/u01 --name ninedata -d swr.cn-east-3.myhuaweicloud.com/ninedata/ninedata:latest
  • Q: The NineData container fails to start, and the server.log contains the error "kube-proxy exited: iptables is not available on this host". What could be the reason?
    • Possible reason: Permission or container configuration issues; the container may not be running in privileged mode or may not have mounted the host's /lib/modules directory, preventing manipulation of iptables rules.
    • Adjust container permissions and configuration to run the container in privileged mode: Add the --privileged parameter and grant NET_ADMIN capabilities. For example: docker run --cap-add NET_ADMIN --privileged -v /opt/ninedata:/u01 --name ninedata -d swr.cn-east-3.myhuaweicloud.com/ninedata/ninedata:latest