Architect

Docker Management

AIVory Architect includes a visual Docker Compose designer for creating, editing, and managing containerized applications directly from your IDE.

  • Visual designer for Docker Compose stacks with drag-and-drop services
  • 8 pre-built templates for common architectures (LAMP, ELK, Microservices, etc.)
  • Container lifecycle management including start, stop, logs, and exec
  • Remote Docker hosts supported via SSH (JetBrains)

Requirements

Before using Docker features, ensure you have the following installed:

Docker
Docker Engine installed and running
Docker Compose
v2 recommended, v1 supported
Verify Your Setup

Run these commands to check your Docker installation:

docker --version
docker compose version

Both commands should return version information without errors.


Visual Compose Designer

Design Docker Compose stacks visually by dragging services onto a canvas and connecting them.

Adding Services

  1. Open the Docker tab in Architect
  2. Drag a service from the palette onto the canvas
  3. Click the service to edit properties:
    • Image and tag
    • Port mappings
    • Environment variables
    • Volume mounts
    • Resource limits
    • Health checks
Note Double-click any service node to quickly access its configuration panel.

Connection Types

Connect services to define relationships:

Volume Mount
Purple line - Persistent data storage between services
Network
Cyan line - Services that communicate on the same network
Depends On
Orange dashed line - Startup order dependencies

Generating docker-compose.yml

  1. Design your stack visually
  2. Click Generate Compose
  3. Review the generated YAML
  4. File is saved to your project directory
Supported Compose Options

The generator supports all standard Docker Compose options including:

  • Build configuration (context, dockerfile, args)
  • Deploy settings (replicas, resources)
  • Health checks
  • Logging configuration
  • Security options
  • Network and volume definitions

Pre-built Templates

Start quickly with 8 ready-to-use templates:

Web + Database
Nginx, PostgreSQL
Microservices
API Gateway, Auth, Business Service, PostgreSQL, Redis
LAMP Stack
Apache, MySQL, PHP, phpMyAdmin
ELK Stack
Elasticsearch, Logstash, Kibana
MEAN Stack
MongoDB, Express, Angular, Node.js
WordPress
WordPress, MySQL
Redis Queue
Web API, Redis, Workers (3 replicas)
PostgreSQL + pgAdmin
PostgreSQL, pgAdmin

To use a template:

  1. Open the Docker tab
  2. Click Templates
  3. Select a template
  4. Customize as needed
Note Templates are starting points - customize ports, volumes, and environment variables for your specific needs.

Container Management

Lifecycle Operations

Start
Start a stopped container
Stop
Stop a running container
Restart
Restart a container
Remove
Delete a container

Viewing Logs

  1. Select a container in the tree view
  2. Click View Logs
  3. Logs stream in real-time

Options:

  • Tail last N lines
  • Show timestamps
  • Follow new output

Executing Commands

Run commands inside a container:

  1. Select a running container
  2. Click Exec
  3. Enter command (e.g., sh, bash, ls -la)
  4. Interactive terminal opens
Note Use bash or sh to open an interactive shell for debugging inside containers.

Container Stats

View real-time resource usage:

  • CPU percentage
  • Memory usage
  • Network I/O
  • Block I/O

Docker Compose Operations

Manage entire stacks with compose commands:

Command Description
Up Start all services (with build option)
Down Stop and remove containers
Build Build or rebuild services
Restart Restart all services
Scale Change number of replicas
Logs View logs from all services

Stack Status

The tree view shows:

  • Running containers (green indicator)
  • Stopped containers (gray indicator)
  • Compose project groupings
  • Service health status

Image Management

List Images

View all local Docker images with:

  • Repository and tag
  • Image ID
  • Size
  • Creation date

Pull Images

Download images from registries:

  1. Click Pull Image
  2. Enter image name and tag (e.g., nginx:latest)
  3. Monitor download progress

Build Images

Build from Dockerfile:

  1. Click Build Image
  2. Select Dockerfile location
  3. Enter tag name
  4. Optionally add build arguments
  5. Monitor build output
Note Build progress and output are streamed in real-time to the IDE console.

Remote Docker Hosts (JetBrains)

Connect to Docker running on remote machines via SSH.

Note Remote Docker host support is currently available only in JetBrains IDEs.

Setup

  1. Open Docker tab
  2. Click Host dropdown
  3. Select Add Remote Host
  4. Enter SSH connection details:
    • Host: user@hostname
    • Port: 22 (default)
    • Authentication method

Switching Hosts

Toggle between local and remote Docker:

  1. Click Host dropdown
  2. Select the target host
  3. All operations now execute on that host

Working with Existing Projects

Architect automatically detects Docker files in your project:

  • docker-compose.yml / docker-compose.yaml
  • docker-compose.*.yml (override files)
  • Dockerfile

When you open a project with compose files:

  1. The designer visualizes the stack
  2. Services appear as nodes on the canvas
  3. Connections show relationships
  4. Edit visually or in YAML
Note Changes made in the visual designer sync to your YAML file, and vice versa.

Layout Persistence

Node positions are saved automatically to .aivory/docker-positions.json. Your layout is preserved across IDE sessions.


Troubleshooting

Docker Not Found
  • Verify Docker is installed: docker --version
  • Check Docker daemon is running
  • Add Docker to your PATH
Permission Denied

On Linux, add your user to the docker group:

sudo usermod -aG docker $USER

Log out and back in for changes to take effect.

Compose File Not Detected
  • Ensure file is named docker-compose.yml or docker-compose.yaml
  • Check file is in workspace root or subdirectory
  • Verify YAML syntax is valid
Remote Connection Failed (JetBrains)
  • Check SSH connectivity: ssh user@host
  • Verify Docker is installed on remote host
  • Ensure remote user has Docker permissions

Next Steps