⌘8 / Alt+8) gathers things that run: run configurations, Docker connections and registries. The HTTP client and database results also show up there as extra tabs once you use them (see HTTP Client and Databases).
The Services tool window
The left side is a tree; the right side shows details of the selected item (a console, a log, a dashboard). The toolbar has + (Add Service,⌘N / Alt+Insert while the tree has focus), Expand All, Collapse All, View Options, and the actions of the selection. Select several rows to run an action on all of them; only actions they have in common are offered.
Add Service (the + button, or right-click empty space) offers:
- Run Configuration Type: adds a group for that configuration type.
- Docker Registry…
- Docker Connection…
Run configurations
Spring Boot configurations appear by default. Other types appear when you add them with Add Service › Run Configuration Type, or once a configuration of that type has run. Each type is a group.- Group actions: Run All, Restart All, Stop All, Open in Browser.
- Configuration actions: Run (or Rerun), Debug, Stop, Open in Browser, Update Application (for configurations that support it).
- Context menu: Show in Run Tool Window, Show in Debug Tool Window, Edit Configuration…, Remove from Services.
Docker
OpenIDEA drives Docker through thedocker CLI, so anything that provides a working docker command works: Docker Desktop, OrbStack, Colima, Rancher Desktop or a plain Docker Engine. It looks for docker in OPENIDEA_DOCKER, on PATH, and in the usual install folders of those tools.
Connections
With nothing configured, Services shows one connection named Docker that uses the Docker CLI default (DOCKER_HOST or the current context). To add another, choose Add Service › Docker Connection…:
Right-click a connection for Edit Connection… and Remove Connection. Connections are app-wide, not per project. The tree updates live from
docker events; when the daemon is not running, Services retries every 10 seconds.
Registries
Add Service › Docker Registry… saves credentials for a registry (Address: such asdocker.io, ghcr.io or registry.example.com:5000, Username:, Password:). Use Test Connection in the dialog or Test Login on the registry node. When you pull an image from that registry, OpenIDEA logs in with these credentials in a temporary Docker config, so your own ~/.docker/config.json is not changed.
What the tree shows
Under each connection:- Compose projects first (
Docker-compose: <project>, with how many services are running), then Dev Containers, Containers, Images, Networks and Volumes. - View Options hides or shows Stopped Containers and Untagged Images (both shown by default).
Create Terminal opens a terminal tab inside a running container (
bash if present, otherwise sh).
Prune removes, after confirmation, Stopped Containers, Dangling Images, Unused Images, Unused Volumes, Unused Networks or Everything Unused (System Prune). Each group node also has its own prune entry.
Long operations (pull, prune, Compose) show progress at the top with a Cancel button. One Docker operation runs at a time.
Details
Selecting an item shows tabs in the detail pane:- Container: Dashboard (overview, live resource usage, port bindings that open in the browser, mounts, networks, environment variables, labels), Log (last 1,000 lines, following while the container runs, with Timestamps), Processes (
docker top) and Inspect (the raw JSON). - Image: Dashboard (tags, containers using it, environment, labels), Layers and Inspect.
- Volume and network: Dashboard and Inspect.
Dockerfiles and Compose files
OpenIDEA recognizesDockerfile, Containerfile, Dockerfile.<name>, *.dockerfile and *.containerfile, and Compose files (YAML whose name contains compose, or whose content looks like a Compose file). For a file detected by content, a banner lets you choose Not a Compose file or Keep as Docker Compose.
The gutter shows run icons:
- On a Dockerfile
FROMline: Run ’…’ (build, then run) and Build Image ’…’ for the final stage, or Build Stage ’…’ for a named intermediate stage. - In a Compose file: Compose Up (All Services) on
services:, and Compose Up ’…’ on each service. - Modify Run Configuration… opens the generated configuration so you can save and change it.
My App becomes my-app:latest). Gutter runs use the first Docker connection. The Compose Up action does the same from the caret.
Docker run configurations
Run › Edit Configurations… has a Docker group with three types. Each has a Server field that picks the Docker connection. Output goes to the Run tool window.Dockerfile
Dockerfile
Builds an image and, with Run built image checked, runs a container from it.Dockerfile (relative to the project root), Context folder, Image tag, Build stage, Build args (
KEY=value; OTHER=value), Build options (for example --no-cache --platform linux/amd64), Run built image, Command, plus the container fields below.Docker Image
Docker Image
Runs a container from an image: Image ID or name, Pull the image before running, Command, plus the container fields below.
Docker Compose
Docker Compose
Starts Compose services: Compose files (separated by
;), Services (empty for all), Project name, Run in the background (-d), Build images before starting (—build), Up options. Stopping an attached run runs docker compose down.8080:80, 5005:5005), Bind mounts (./data:/data; cache:/root/.cache), Container environment, Run options (for example --rm --network host). Before each run, a previous container with the same name is removed; Stop runs docker stop.
Deployment (SFTP)
Deployment copies project files to a server, or to a local or mounted folder. It is set up under Settings › Build, Execution, Deployment › Deployment, and its actions are under Tools › Deployment and the Deployment submenu of the Project view, editor and editor tab context menus.Configure a server
1
Create an SSH configuration
SFTP servers connect through an SSH configuration from Settings › Tools › SSH Configurations (host, port, user,
and password, key pair, or OpenSSH config and agent). See SSH.
2
Add the server
In Deployment, click Add. On the Connection tab, set Name, Type (SFTP or Local or mounted
folder), SSH configuration, Root path and optionally Web server URL. Click Test Connection.
3
Map paths
On Mappings, pair a Local path (relative to the project root; empty means the whole project) with a
Deployment path (relative to the root path) and an optional Web path. On Excluded Paths, list remote
paths that are never touched.
4
Set a default
Select the server and click Use as Default. The “to default server” actions and automatic upload use it.
Automatic upload runs only in trusted projects. Failed automatic transfers are reported; successful ones are silent.
Transfer files
The actions work on the selection in the Project view, or on the file in the active editor:- Upload to Default Server, Upload to…, Download from Default Server, Download from…
- Sync with Deployed to…: opens a comparison window listing files that are only local, only remote, newer on one side, different or identical. Compare by Size and Timestamp or Binary Content, pick an operation per file (upload, download, delete, skip;
Spacecycles it), preview and edit the diff, then Synchronize Selected or Synchronize All. - Delete from Server
- Automatic Upload: turns automatic upload on (Always) or off.
- Open in Browser (Deployed): opens the file’s URL on the web server.
- Browse Remote Host: opens the Remote Host tool window, a tree of the server’s files with Open (edit a copy; saving uploads it back), Download to Project, New Folder…, Rename…, Delete…, Refresh and Copy Path.
Not supported
- Kubernetes, and Podman-specific features.
- Creating volumes or networks, browsing files inside containers, pushing images.
- FTP, FTPS and WebDAV deployment servers (only SFTP and local folders).