diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index c6316cee4ab091dc1b58de4e54ef8f9c73145f89..7fd92b797af61b2f26365ea6f47ba1a9084ea35f 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -29,6 +29,7 @@ build-metadata-db:
 test-backend-container:
   stage: test
   script:
+    - docker system prune -f
     - "./fda-container-service/rest-service/src/test/resources/integration-test.before"
     - "mvn -f fda-container-service/pom.xml clean test verify"
     - "./fda-container-service/rest-service/src/test/resources/integration-test.after"
@@ -49,6 +50,7 @@ test-backend-container:
 test-backend-database:
   stage: test
   script:
+    - docker system prune -f
     - "./fda-database-service/rest-service/src/test/resources/integration-test.before"
     - "mvn -f fda-database-service/pom.xml clean test verify"
     - "./fda-database-service/rest-service/src/test/resources/integration-test.after"
@@ -81,6 +83,7 @@ test-backend-gateway:
 test-backend-query:
   stage: test
   script:
+    - docker system prune -f
     - "./fda-query-service/rest-service/src/test/resources/integration-test.before"
     - "mvn -f fda-query-service/pom.xml clean test verify"
     - "./fda-query-service/rest-service/src/test/resources/integration-test.after"
@@ -101,6 +104,7 @@ test-backend-query:
 test-backend-table:
   stage: test
   script:
+    - docker system prune -f
     - "./fda-table-service/rest-service/src/test/resources/integration-test.before"
     - "mvn -f fda-table-service/pom.xml clean test verify"
     - "./fda-table-service/rest-service/src/test/resources/integration-test.after"
diff --git a/fda-container-service/rest-service/src/test/java/at/tuwien/service/ContainerServiceIntegrationTest.java b/fda-container-service/rest-service/src/test/java/at/tuwien/service/ContainerServiceIntegrationTest.java
index 48e3d0a93e46cbb229f8dbda416c0af660007ce7..c9e578456e40a39ecfe8e48b7119a7387589d153 100644
--- a/fda-container-service/rest-service/src/test/java/at/tuwien/service/ContainerServiceIntegrationTest.java
+++ b/fda-container-service/rest-service/src/test/java/at/tuwien/service/ContainerServiceIntegrationTest.java
@@ -3,11 +3,10 @@ package at.tuwien.service;
 import at.tuwien.BaseUnitTest;
 import at.tuwien.api.container.ContainerCreateRequestDto;
 import at.tuwien.api.container.ContainerStateDto;
-import at.tuwien.api.container.image.ImageCreateDto;
 import at.tuwien.entities.container.Container;
-import at.tuwien.entities.container.image.ContainerImage;
 import at.tuwien.exception.ContainerNotFoundException;
 import at.tuwien.exception.ContainerNotRunningException;
+import at.tuwien.exception.ContainerStillRunningException;
 import at.tuwien.exception.DockerClientException;
 import at.tuwien.repository.ContainerRepository;
 import at.tuwien.repository.ImageRepository;
@@ -17,7 +16,6 @@ import com.github.dockerjava.api.exception.NotModifiedException;
 import com.github.dockerjava.api.model.*;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -27,7 +25,6 @@ import org.springframework.test.context.junit.jupiter.SpringExtension;
 
 import javax.transaction.Transactional;
 import java.util.Arrays;
-import java.util.List;
 import java.util.Map;
 
 import static org.junit.jupiter.api.Assertions.*;
@@ -40,9 +37,6 @@ public class ContainerServiceIntegrationTest extends BaseUnitTest {
     @Autowired
     private ContainerService containerService;
 
-    @Autowired
-    private ImageService imageService;
-
     @Autowired
     private HostConfig hostConfig;
 
@@ -55,6 +49,9 @@ public class ContainerServiceIntegrationTest extends BaseUnitTest {
     @Autowired
     private DockerClient dockerClient;
 
+    private Long CONTAINER_1_ID, CONTAINER_2_ID;
+    private String CONTAINER_1_HASH;
+
     @Transactional
     @BeforeEach
     public void beforeEach() {
@@ -68,6 +65,7 @@ public class ContainerServiceIntegrationTest extends BaseUnitTest {
                 .withEnableIpv6(false)
                 .exec();
         imageRepository.save(IMAGE_1);
+        imageRepository.save(IMAGE_2);
         /* create container */
         final CreateContainerResponse request = dockerClient.createContainerCmd(IMAGE_1_REPOSITORY + ":" + IMAGE_1_TAG)
                 .withEnv(IMAGE_1_ENVIRONMENT)
@@ -79,8 +77,10 @@ public class ContainerServiceIntegrationTest extends BaseUnitTest {
                 .exec();
         /* start container */
         dockerClient.startContainerCmd(request.getId()).exec();
-        CONTAINER_1.setHash(request.getId());
-        containerRepository.save(CONTAINER_1);
+        CONTAINER_1_HASH = request.getId();
+        CONTAINER_1.setHash(CONTAINER_1_HASH);
+        CONTAINER_1_ID = containerRepository.save(CONTAINER_1).getId();
+        CONTAINER_2_ID = containerRepository.save(CONTAINER_2).getId();
     }
 
     @Transactional
@@ -115,29 +115,29 @@ public class ContainerServiceIntegrationTest extends BaseUnitTest {
     public void findIpAddress_succeeds() throws ContainerNotRunningException {
 
         /* test */
-        final Map<String, String> response = containerService.findIpAddresses(CONTAINER_1.getHash());
+        final Map<String, String> response = containerService.findIpAddresses(CONTAINER_1_HASH);
         assertTrue(response.containsKey("fda-userdb"));
         assertEquals(CONTAINER_1_IP, response.get("fda-userdb"));
     }
 
     @Test
     public void findIpAddress_notRunning_fails() {
-        dockerClient.stopContainerCmd(CONTAINER_1.getHash()).exec();
+        dockerClient.stopContainerCmd(CONTAINER_1_HASH).exec();
 
         /* test */
         assertThrows(ContainerNotRunningException.class, () -> {
-            containerService.findIpAddresses(CONTAINER_1.getHash());
+            containerService.findIpAddresses(CONTAINER_1_HASH);
         });
     }
 
     @Test
     public void findIpAddress_notFound_fails() {
-        dockerClient.stopContainerCmd(CONTAINER_1.getHash()).exec();
-        dockerClient.removeContainerCmd(CONTAINER_1.getHash()).exec();
+        dockerClient.stopContainerCmd(CONTAINER_1_HASH).exec();
+        dockerClient.removeContainerCmd(CONTAINER_1_HASH).exec();
 
         /* test */
         assertThrows(ContainerNotFoundException.class, () -> {
-            containerService.findIpAddresses(CONTAINER_1.getHash());
+            containerService.findIpAddresses(CONTAINER_1_HASH);
         });
     }
 
@@ -145,18 +145,18 @@ public class ContainerServiceIntegrationTest extends BaseUnitTest {
     public void getContainerState_succeeds() {
 
         /* test */
-        final ContainerStateDto response = containerService.getContainerState(CONTAINER_1.getHash());
+        final ContainerStateDto response = containerService.getContainerState(CONTAINER_1_HASH);
         assertEquals(ContainerStateDto.RUNNING, response);
     }
 
     @Test
     public void getContainerState_notFound_fails() {
-        dockerClient.stopContainerCmd(CONTAINER_1.getHash()).exec();
-        dockerClient.removeContainerCmd(CONTAINER_1.getHash()).exec();
+        dockerClient.stopContainerCmd(CONTAINER_1_HASH).exec();
+        dockerClient.removeContainerCmd(CONTAINER_1_HASH).exec();
 
         /* test */
         assertThrows(DockerClientException.class, () -> {
-            containerService.getContainerState(CONTAINER_1.getHash());
+            containerService.getContainerState(CONTAINER_1_HASH);
         });
     }
 
@@ -185,7 +185,7 @@ public class ContainerServiceIntegrationTest extends BaseUnitTest {
 
     @Test
     public void change_start_succeeds() {
-        dockerClient.stopContainerCmd(CONTAINER_1.getHash()).exec();
+        dockerClient.stopContainerCmd(CONTAINER_1_HASH).exec();
 
         /* test */
         containerService.start(CONTAINER_1_ID);
@@ -198,4 +198,48 @@ public class ContainerServiceIntegrationTest extends BaseUnitTest {
         containerService.stop(CONTAINER_1_ID);
     }
 
+    @Test
+    public void change_stop_notFoundDocker_fails() {
+
+        /* test */
+        assertThrows(DockerClientException.class, () -> {
+            containerService.stop(CONTAINER_2_ID);
+        });
+    }
+
+    @Test
+    public void remove_succeeds() {
+        dockerClient.stopContainerCmd(CONTAINER_1_HASH).exec();
+
+        /* test */
+        containerService.remove(CONTAINER_1_ID);
+    }
+
+    @Test
+    public void remove_notFound_fails() {
+
+        /* test */
+        assertThrows(ContainerNotFoundException.class, () -> {
+            containerService.remove(9999999L);
+        });
+    }
+
+    @Test
+    public void remove_docker_fails() {
+
+        /* test */
+        assertThrows(DockerClientException.class, () -> {
+            containerService.remove(CONTAINER_2_ID);
+        });
+    }
+
+    @Test
+    public void remove_stillRunning_fails() {
+
+        /* test */
+        assertThrows(ContainerStillRunningException.class, () -> {
+            containerService.remove(CONTAINER_1_ID);
+        });
+    }
+
 }