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
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.
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.tipIf you specified a different container name in step 1, replace
ninedata
in the above command with your actual container name.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 bothadmin
. After the first login, a password change window will pop up; please change the administrator password immediately.
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 displaysYou 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.
- 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
- 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
- Possible reason: Newer Linux distributions default to enabling CGroup v2, and if Docker attempts to create a sub-CGroup, it will trigger an
- 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
- Possible reason: Permission or container configuration issues; the container may not be running in privileged mode or may not have mounted the host's