diff --git a/BUILD b/BUILD
index 4750354..b16fb0d 100644
--- a/BUILD
+++ b/BUILD
@@ -73,6 +73,7 @@
     tags = [
         "docker",
         "elastic",
+        "exclusive",
     ],
     deps = ELASTICSEARCH_DEPS + PLUGIN_TEST_DEPS + [
         QUERY_TESTS_DEP % name,
diff --git a/src/test/java/com/google/gerrit/elasticsearch/ElasticContainer.java b/src/test/java/com/google/gerrit/elasticsearch/ElasticContainer.java
index b99deb0..e459902 100644
--- a/src/test/java/com/google/gerrit/elasticsearch/ElasticContainer.java
+++ b/src/test/java/com/google/gerrit/elasticsearch/ElasticContainer.java
@@ -33,21 +33,19 @@
   private static String getImageName(ElasticVersion version) {
     switch (version) {
       case V7_6:
-        return "blacktop/elasticsearch:7.6.2";
+        return "docker.elastic.co/elasticsearch/elasticsearch:7.6.2";
       case V7_7:
-        return "blacktop/elasticsearch:7.7.1";
+        return "docker.elastic.co/elasticsearch/elasticsearch:7.7.1";
       case V7_8:
-        return "blacktop/elasticsearch:7.8.1";
+        return "docker.elastic.co/elasticsearch/elasticsearch:7.8.1";
       case V7_10:
-        return "blacktop/elasticsearch:7.10.0";
+        return "docker.elastic.co/elasticsearch/elasticsearch:7.10.0";
     }
     throw new IllegalStateException("No tests for version: " + version.name());
   }
 
   private ElasticContainer(ElasticVersion version) {
-    super(
-        DockerImageName.parse(getImageName(version))
-            .asCompatibleSubstituteFor("docker.elastic.co/elasticsearch/elasticsearch"));
+    super(DockerImageName.parse(getImageName(version)));
   }
 
   @Override
