This is an automated email from the ASF dual-hosted git repository.
sk0x50 pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/ignite-3.git
The following commit(s) were added to refs/heads/main by this push:
new 1ac002bca18 IGNITE-25510 Add a guide on starting AI3 (#5917)
1ac002bca18 is described below
commit 1ac002bca18a7957f88e6ba6b173619e15c66bc5
Author: IgGusev <[email protected]>
AuthorDate: Fri May 30 17:47:48 2025 +0400
IGNITE-25510 Add a guide on starting AI3 (#5917)
---
docs/_data/toc.yaml | 7 +-
docs/_docs/quick-start/start-cluster.adoc | 215 ++++++++++++++++++++++++++++++
2 files changed, 221 insertions(+), 1 deletion(-)
diff --git a/docs/_data/toc.yaml b/docs/_data/toc.yaml
index 973bb4fa054..68af5c29ed6 100644
--- a/docs/_data/toc.yaml
+++ b/docs/_data/toc.yaml
@@ -26,7 +26,12 @@
- title: Migration From Ignite 2
url: installation/migration-from-ai2/overview
- title: Getting Started
- url: quick-start/getting-started-guide
+ url: get-started/start-cluster
+ items:
+ - title: Quick Start
+ url: quick-start/getting-started-guide
+ - title: Start Ignite 3 Cluster
+ url: quick-start/start-cluster
- title: Embedded Mode
url: quick-start/embedded-mode
- title: Ignite CLI Tool
diff --git a/docs/_docs/quick-start/start-cluster.adoc
b/docs/_docs/quick-start/start-cluster.adoc
new file mode 100644
index 00000000000..ab30705d615
--- /dev/null
+++ b/docs/_docs/quick-start/start-cluster.adoc
@@ -0,0 +1,215 @@
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+= How to Start a Ignite 3 Cluster in Docker
+
+This guide walks you through the process of setting up and running an Apache
Ignite 3 cluster using Docker containers. Follow these steps to get a
three-node cluster up and running quickly.
+
+== Prerequisites
+
+- Up-to-date Docker and Docker Compose installed on your system
+- Basic familiarity with command-line operations
+- The code editor of your choice (VS Code, IntelliJ IDEA, etc.)
+
+== Step 1: Create a Docker Compose Configuration
+
+1. Create a file named `docker-compose.yml` in your project directory:
+
+[source,yaml]
+----
+name: ignite3
+
+x-ignite-def: &ignite-def
+ image: apacheignite/ignite:3.0.0
+ environment:
+ JVM_MAX_MEM: "4g"
+ JVM_MIN_MEM: "4g"
+ configs:
+ - source: node_config
+ target: /opt/ignite/etc/ignite-config.conf
+ mode: 0644
+
+services:
+ node1:
+ <<: *ignite-def
+ command: --node-name node1
+ ports:
+ - "10300:10300"
+ - "10800:10800"
+ node2:
+ <<: *ignite-def
+ command: --node-name node2
+ ports:
+ - "10301:10300"
+ - "10801:10800"
+ node3:
+ <<: *ignite-def
+ command: --node-name node3
+ ports:
+ - "10302:10300"
+ - "10802:10800"
+
+configs:
+ node_config:
+ content: |
+ ignite {
+ network {
+ port: 3344
+ nodeFinder.netClusterNodes = ["node1:3344", "node2:3344",
"node3:3344"]
+ }
+ }
+----
+
+== Step 2: Start the Ignite Cluster
+
+. Open a terminal in the directory containing your `docker-compose.yml` file
+. Run the following command to start the cluster:
++
+[source, bash]
+----
+docker compose up -d
+----
++
+. Verify that all containers are running:
++
+[source, bash]
+----
+docker compose ps
+----
++
+Here is how the command output may look:
++
+[source, text]
+----
+NAME IMAGE COMMAND SERVICE
CREATED STATUS PORTS
+ignite3-node1-1 apacheignite/ignite:3.0.0 "docker-entrypoint.s…" node1
13 seconds ago Up 10 seconds 0.0.0.0:10300->10300/tcp, 3344/tcp,
0.0.0.0:10800->10800/tcp
+ignite3-node2-1 apacheignite/ignite:3.0.0 "docker-entrypoint.s…" node2
13 seconds ago Up 10 seconds 3344/tcp, 0.0.0.0:10301->10300/tcp,
0.0.0.0:10801->10800/tcp
+ignite3-node3-1 apacheignite/ignite:3.0.0 "docker-entrypoint.s…" node3
13 seconds ago Up 10 seconds 3344/tcp, 0.0.0.0:10302->10300/tcp,
0.0.0.0:10802->10800/tcp
+----
+
+Your nodes are now running, but the cluster is not initialized.
+
+== Step 3: Initialize the Cluster
+
+. Start the Ignite CLI in Docker:
++
+[source, text]
+----
+docker run --rm -it --network=host -e LANG=C.UTF-8 -e LC_ALL=C.UTF-8
apacheignite/ignite:3.0.0 cli
+----
++
+. Inside the CLI, connect to one of the nodes:
++
+[source, bash]
+----
+connect http://localhost:10300
+----
++
+. Confirm the connection to the default node in the CLI tool.
++
+. Initialize the cluster with a name and the metastorage group of all nodes:
++
+[source, bash]
+----
+cluster init --name=ignite3 --metastorage-group=node1,node2,node3
+----
+
+The output from this step should be similar to this:
+
+[source, text]
+----
+ # ___ __
+ ### / | ____ ____ _ _____ / /_ ___
+ # ##### / /| | / __ \ / __ `// ___// __ \ / _ \
+ ### ###### / ___ | / /_/ // /_/ // /__ / / / // ___/
+ ##### ####### /_/ |_|/ .___/ \__,_/ \___//_/ /_/ \___/
+ ####### ###### /_/
+ ######## #### ____ _ __ _____
+ # ######## ## / _/____ _ ____ (_)/ /_ ___ |__ /
+ #### ####### # / / / __ `// __ \ / // __// _ \ /_ <
+ ##### ##### _/ / / /_/ // / / // // /_ / ___/ ___/ /
+ #### ## /___/ \__, //_/ /_//_/ \__/ \___/ /____/
+ ## /____/
+
+ Apache Ignite CLI version 3.0.0
+
+
+You appear to have not connected to any node yet. Do you want to connect to
the default node http://localhost:10300? [Y/n] y
+Connected to http://localhost:10300
+The cluster is not initialized. Run cluster init command to initialize it.
+[node1]> cluster init --name=ignite3 --metastorage-group=node1,node2,node3
+Cluster was initialized successfully
+----
+
+== Step 4: Verify Your Cluster
+
+. Use the `cluster status` CLI command to verify your cluster is running
correctly.
++
+[source, bash]
+----
+cluster status
+----
++
+The output should look similar to this:
++
+[source, text]
+----
+[name: ignite3, nodes: 3, status: active, cmgNodes: [node1, node2, node3],
msNodes: [node1, node2, node3]]
+----
++
+This means that all 3 nodes found each other and formed an active cluster.
++
+. Exit the CLI by typing `exit` or pressing Ctrl+D. This will also stop the
CLI container.
+
+Congratulations! You have a local Apache Ignite 3 cluster running that you can
use for development.
+
+== Understanding Port Configuration
+
+The Docker Compose file exposes two types of ports for each node:
+
+- **10300-10302**: REST API ports for administrative operations;
+- **10800-10802**: Client connection ports for your applications.
+
+== Stopping the Cluster
+
+If you want to pause your cluster:
+
+[source, bash]
+----
+docker compose stop
+
+[+] Stopping 3/3
+ ✔ Container ignite3-node1-1 Stopped
+ ✔ Container ignite3-node2-1 Stopped
+ ✔ Container ignite3-node3-1 Stopped
+----
+
+This will stop the containers and retain your data.
+
+== Removing the Cluster
+
+When you are done working with the cluster, you can remove it using:
+
+[source, bash]
+----
+docker compose down
+
+[+] Running 4/4
+ ✔ Container ignite3-node3-1 Removed
+ ✔ Container ignite3-node2-1 Removed
+ ✔ Container ignite3-node1-1 Removed
+ ✔ Network ignite3_default Removed
+----
+
+This will stop and remove all the containers. Your data will be lost unless
you have configured persistent storage.
\ No newline at end of file