Commands
3 min

Docker Commands for QE

Essential Docker commands for managing test environments

...
dockercontainerstestingdevops

Essential Docker Commands for Testers

1. Container Management

# List running containers
docker ps
 
# List all containers (including stopped)
docker ps -a
 
# Start a container
docker start selenium-hub
 
# Stop a container
docker stop selenium-hub
 
# Restart a container
docker restart selenium-hub
 
# Remove a container
docker rm selenium-hub
 
# Force remove running container
docker rm -f selenium-hub

2. Running Test Containers

# Run Selenium standalone Chrome
docker run -d -p 4444:4444 --name selenium \
  selenium/standalone-chrome:latest
 
# Run with volume mount for test results
docker run -v $(pwd)/results:/test-results \
  --name test-runner my-test-image
 
# Run with environment variables
docker run -e BASE_URL=https://staging.example.com \
  -e API_KEY=test123 \
  --name api-tests my-api-test-image
 
# Run in interactive mode
docker run -it --rm my-test-image /bin/bash

3. Image Management

# List images
docker images
 
# Pull an image
docker pull selenium/standalone-firefox:latest
 
# Build an image from Dockerfile
docker build -t my-test-image:v1.0 .
 
# Tag an image
docker tag my-test-image:v1.0 my-test-image:latest
 
# Remove an image
docker rmi my-test-image:v1.0
 
# Remove unused images
docker image prune -a

4. Logs and Debugging

# View container logs
docker logs selenium-hub
 
# Follow logs in real-time
docker logs -f selenium-hub
 
# View last 100 lines
docker logs --tail 100 selenium-hub
 
# Execute command in running container
docker exec -it selenium-hub /bin/bash
 
# Inspect container details
docker inspect selenium-hub
 
# View container resource usage
docker stats

5. Docker Compose for Test Environments

# Start all services
docker-compose up -d
 
# View logs from all services
docker-compose logs -f
 
# Stop all services
docker-compose down
 
# Rebuild and start
docker-compose up -d --build
 
# Scale a service
docker-compose up -d --scale chrome=3
 
# Run one-off command
docker-compose run test-runner npm test

Sample docker-compose.yml for Testing

version: '3.8'
 
services:
  selenium-hub:
    image: selenium/hub:latest
    ports:
      - "4444:4444"
    
  chrome:
    image: selenium/node-chrome:latest
    depends_on:
      - selenium-hub
    environment:
      - SE_EVENT_BUS_HOST=selenium-hub
      - SE_EVENT_BUS_PUBLISH_PORT=4442
      - SE_EVENT_BUS_SUBSCRIBE_PORT=4443
    
  firefox:
    image: selenium/node-firefox:latest
    depends_on:
      - selenium-hub
    environment:
      - SE_EVENT_BUS_HOST=selenium-hub
      - SE_EVENT_BUS_PUBLISH_PORT=4442
      - SE_EVENT_BUS_SUBSCRIBE_PORT=4443
  
  app-under-test:
    image: my-app:latest
    ports:
      - "8080:8080"
    environment:
      - NODE_ENV=test

Quick Reference

Cleanup Commands

# Remove all stopped containers
docker container prune
 
# Remove all unused images
docker image prune -a
 
# Remove all unused volumes
docker volume prune
 
# Remove everything unused
docker system prune -a --volumes
 
# Free up space (safe)
docker system prune

Network Commands

# List networks
docker network ls
 
# Create network
docker network create test-network
 
# Connect container to network
docker network connect test-network selenium-hub
 
# Inspect network
docker network inspect test-network

Key Takeaways

  • Use docker-compose for multi-container test setups
  • Always name containers (--name) for easier management
  • Use -d flag to run containers in detached mode
  • Mount volumes to preserve test results and artifacts
  • Clean up regularly to save disk space
  • Use docker logs for debugging test failures

Comments (0)

Loading comments...