diff --git a/docs/modules/databases/influxdb.md b/docs/modules/databases/influxdb.md
index 8055f6aed57..afbf75c4985 100644
--- a/docs/modules/databases/influxdb.md
+++ b/docs/modules/databases/influxdb.md
@@ -4,10 +4,43 @@ Testcontainers module for InfluxData [InfluxDB](https://www.influxdata.com/produ
## Important note
-There are breaking changes in InfluxDB 2.x.
-For more information refer to the main [documentation](https://docs.influxdata.com/influxdb/v2.0/upgrade/v1-to-v2/).
+There are breaking changes in InfluxDB 2.x. and InfluxDB 3.x. for more information refer to the main documentations:
+
+InfluxDB 3.x. [documentation](https://www.influxdata.com/blog/influxdb3-open-source-public-alpha/#heading2).
+
+InfluxDB 2.x. [documentation](https://docs.influxdata.com/influxdb/v2.0/upgrade/v1-to-v2/).
+
You can find more information about the official InfluxDB image on [Docker Hub](https://hub.docker.com/_/influxdb).
+## InfluxDB 3.x usage example
+
+Running a `InfluxDBContainer` as a stand-in for InfluxDB in a test with default env variables:
+
+
+[Create an InfluxDB container](../../../modules/influxdb/src/test/java/org/testcontainers/influxdb/InfluxDBV3ContainerTest.java) inside_block:createInfluxDBContainerV3WithAuthTokenTest
+
+
+
+The InfluxDB instance will be setup with the following data:
+
+| Property | Default Value |
+|-------------|:-------------:|
+| authDisable | false |
+
+For more details about the InfluxDB setup, please visit the official
+
+[InfluxDB documentation](https://docs.influxdata.com/influxdb3/core/get-started/)
+
+[InfluxDB config options](https://docs.influxdata.com/influxdb3/core/reference/config-options/)
+
+It is possible to overwrite the default property values. Create a container with disabled auth token:
+
+[Create an InfluxDB container with admin token](../../../modules/influxdb/src/test/java/org/testcontainers/influxdb/InfluxDBV3ContainerTest.java) inside_block:createInfluxDBContainerV3WithDisableAuthTokenTest
+
+
+!!! hint
+You can find the latest documentation about the InfluxDB 3.x Java client [here](https://github.com/InfluxCommunity/influxdb3-java).
+
## InfluxDB 2.x usage example
Running a `InfluxDBContainer` as a stand-in for InfluxDB in a test:
diff --git a/modules/influxdb/build.gradle b/modules/influxdb/build.gradle
index 3fcb2925e13..11a8a3d847c 100644
--- a/modules/influxdb/build.gradle
+++ b/modules/influxdb/build.gradle
@@ -11,6 +11,13 @@ dependencies {
testImplementation 'org.assertj:assertj-core:3.27.4'
testImplementation 'org.influxdb:influxdb-java:2.25'
testImplementation "com.influxdb:influxdb-client-java:7.3.0"
+ testImplementation 'com.influxdb:influxdb3-java:1.2.0'
+}
+
+test {
+ jvmArgs = [
+ "--add-opens=java.base/java.nio=org.apache.arrow.memory.core,ALL-UNNAMED"
+ ]
}
tasks.japicmp {
diff --git a/modules/influxdb/src/main/java/org/testcontainers/influxdb/InfluxDBContainer.java b/modules/influxdb/src/main/java/org/testcontainers/influxdb/InfluxDBContainer.java
new file mode 100644
index 00000000000..df646f697ed
--- /dev/null
+++ b/modules/influxdb/src/main/java/org/testcontainers/influxdb/InfluxDBContainer.java
@@ -0,0 +1,137 @@
+package org.testcontainers.influxdb;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.github.dockerjava.api.command.InspectContainerResponse;
+import com.github.dockerjava.zerodep.shaded.org.apache.hc.client5.http.HttpResponseException;
+import com.github.dockerjava.zerodep.shaded.org.apache.hc.client5.http.classic.methods.HttpPost;
+import com.github.dockerjava.zerodep.shaded.org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
+import com.github.dockerjava.zerodep.shaded.org.apache.hc.client5.http.impl.classic.HttpClients;
+import com.github.dockerjava.zerodep.shaded.org.apache.hc.core5.http.HttpStatus;
+import org.testcontainers.containers.GenericContainer;
+import org.testcontainers.containers.wait.strategy.HttpWaitStrategy;
+import org.testcontainers.utility.DockerImageName;
+
+import java.io.IOException;
+import java.io.InputStream;
+
+import static java.lang.String.format;
+
+/**
+ * Testcontainers implementation for InfluxDB 3 (InfluxDB IOx).
+ *
+ * Supported image: {@code influxdb}
+ *
+ * Exposed ports: 8181
+ */
+public class InfluxDBContainer extends GenericContainer {
+
+ /**
+ * The default port exposed by InfluxDB 3.
+ */
+ private static final Integer INFLUXDB_PORT = 8181;
+
+ private static final DockerImageName DEFAULT_IMAGE_NAME = DockerImageName.parse("influxdb");
+
+ /**
+ * The authentication token for InfluxDB 3.
+ */
+ private String token;
+
+ private boolean isAuthDisable;
+
+ /**
+ * Creates a new InfluxDB 3 container using the specified Docker image.
+ *
+ * @param dockerImageName the name of the Docker image
+ */
+ public InfluxDBContainer(final DockerImageName dockerImageName) {
+ super(dockerImageName);
+ dockerImageName.assertCompatibleWith(DEFAULT_IMAGE_NAME);
+
+ this.waitStrategy =
+ new HttpWaitStrategy()
+ .forPath("/health")
+ .forStatusCodeMatching(stausCode -> stausCode.equals(200) || stausCode.equals(401));
+
+ withCommand("influxdb3 serve --node-id local01 --object-store file --data-dir /home/influxdb3/.influxdb3");
+
+ addExposedPort(INFLUXDB_PORT);
+ }
+
+ /**
+ * Creates an admin authentication token by making an HTTP request to the InfluxDB 3 instance.
+ *
+ * @return the generated authentication token
+ * @throws IllegalArgumentException if the token cannot be created due to HTTP or IO errors
+ * @throws HttpResponseException if the InfluxDB server returns a non-201 status code
+ */
+ private String createToken() {
+ HttpPost httpPost = new HttpPost(format("%s/api/v3/configure/token/admin", getUrl()));
+
+ httpPost.setHeader("Accept", "application/json");
+ httpPost.setHeader("Content-Type", "application/json");
+
+ try (CloseableHttpClient httpClient = HttpClients.createDefault()) {
+ return httpClient.execute(httpPost, classicHttpResponse -> {
+ if (classicHttpResponse.getCode() != HttpStatus.SC_CREATED) {
+ throw new HttpResponseException(
+ classicHttpResponse.getCode(),
+ "Failed to get token"
+ );
+ }
+ try (InputStream content = classicHttpResponse.getEntity().getContent()) {
+ return new ObjectMapper().readTree(content).get("token").asText();
+ }
+ });
+ } catch (IOException e) {
+ throw new IllegalArgumentException("Cannot get token", e);
+ }
+ }
+
+ /**
+ * Configures environment variables for the InfluxDB 3 container.
+ *
+ * This is automatically called by Testcontainers during container startup.
+ *