# Docker connection settings

> **TL;DR**
> `File | Settings | Build, Execution & Deployment | Docker` for Windows and Linux
>
>
>
> `IntelliJ IDEA | Settings | Build, Execution & Deployment | Docker` for macOS
>
>
>
> `Ctrl+Alt+S` (Windows), `⌘ Comma` (macOS), `⌘ Comma` (IntelliJ IDEA Classic (macOS)), `⌘ Comma` (macOS System Shortcuts), `Ctrl+Alt+S` (XWin), `Ctrl+Alt+S` (GNOME), `Ctrl+Alt+S` (KDE), `Ctrl+Alt+S` (Emacs), `Ctrl+Alt+S` (Sublime Text), `⌘ Comma` (Sublime Text (macOS)), `Ctrl+Alt+S` (NetBeans), `Ctrl+Alt+S` (Visual Studio), `⌘ Comma` (Visual Studio (macOS)), `Ctrl+Alt+S` (Eclipse), `⌘ Comma` (Eclipse (macOS)) ![the Settings icon](https://resources.jetbrains.com.cn/help/img/idea/2026.2/app.expui.general.settings.svg)

Specify the settings for accessing the Docker Engine API from IntelliJ IDEA. For more information about using the Docker integration with IntelliJ IDEA, refer to [Docker](docker.html).

Procedure: Enable the Docker plugin

This functionality relies on the [Docker](https://plugins.jetbrains.com/plugin/7724-docker)  plugin, which  is bundled and enabled in IntelliJ IDEA   by default. If the relevant features are not available, make sure that you did not disable the plugin.

> **Note:**
> The Docker plugin is available by default only in IntelliJ IDEA  with the Ultimate subscription. For IntelliJ IDEA, you need to install the Docker plugin as described in [Plugins](managing-plugins.html).

1. Press `Ctrl+Alt+S` (Windows), `⌘ Comma` (macOS), `⌘ Comma` (IntelliJ IDEA Classic (macOS)), `⌘ Comma` (macOS System Shortcuts), `Ctrl+Alt+S` (XWin), `Ctrl+Alt+S` (GNOME), `Ctrl+Alt+S` (KDE), `Ctrl+Alt+S` (Emacs), `Ctrl+Alt+S` (Sublime Text), `⌘ Comma` (Sublime Text (macOS)), `Ctrl+Alt+S` (NetBeans), `Ctrl+Alt+S` (Visual Studio), `⌘ Comma` (Visual Studio (macOS)), `Ctrl+Alt+S` (Eclipse), `⌘ Comma` (Eclipse (macOS)) to open settings and then select `Plugins`.

2. Open the Installed tab, find the Docker plugin, and select the checkbox next to the plugin name.

![The Docker connection settings page](https://resources.jetbrains.com.cn/help/img/idea/2026.2/docker_configuration_settings.png)

You can specify the paths to the [Docker CLI](https://docs.docker.com/engine/reference/commandline/cli/) executables that IntelliJ IDEA uses for interacting with the Docker daemon.

IntelliJ IDEA should be able to automatically detect the Docker CLI executables in the default install location. However, if you installed Docker in a custom location, you may need to specify the paths manually.

Docker executable
: Specify the path to the base Docker CLI executable. Default locations:
:
:
:
:
:
: | macOS and Linux | `/usr/local/bin/docker` |
: | Windows | `C:\Program Files\Docker\Docker\resources\bin\docker.exe` |

Docker Compose executable
: Specify the path to the Docker Compose standalone executable. By default, Compose V2 integrates into the Docker CLI platform and uses the same executable for Docker Compose via the `docker compose` command.
:
:
:
:
:
: If you are using Compose V1, the main Docker executable will not work for Docker Compose. In this case, you need to specify the path to `docker-compose`. For more information, see [docker-compose vs docker compose](https://docs.docker.com/compose/migrate/#docker-compose-vs-docker-compose).

You can add multiple Docker configurations, each representing a connection to a separate Docker daemon:

![the Add button](https://resources.jetbrains.com.cn/help/img/idea/2026.2/app.expui.general.add.svg) Docker
: Add a new Docker configuration.

![the Remove button](https://resources.jetbrains.com.cn/help/img/idea/2026.2/app.expui.general.remove.svg) Delete `Alt+Delete` (Windows), `Alt+Delete` (macOS), `Alt+Delete` (IntelliJ IDEA Classic (macOS)), `Alt+Delete` (macOS System Shortcuts), `Alt+Delete` (XWin), `Alt+Delete` (GNOME), `Alt+Delete` (KDE), `Alt+Delete` (Emacs), `Alt+Delete` (Sublime Text), `Alt+Delete` (Sublime Text (macOS)), `Alt+Delete` (NetBeans), `Alt+Delete` (Visual Studio), `Alt+Delete` (Visual Studio (macOS)), `Alt+Delete` (Eclipse), `Alt+Delete` (Eclipse (macOS))
: Remove the selected Docker configuration.

For each Docker configuration, specify a name and choose the connection type depending on the operating system:

Docker for Windows
: This is the recommended option when using [Docker Desktop](https://www.docker.com/products/docker-desktop/) for Windows.

Docker for Mac
: This is the recommended option when using [Docker Desktop](https://www.docker.com/products/docker-desktop/) for macOS.

Unix socket
: This is the recommended option when using [Docker Desktop](https://www.docker.com/products/docker-desktop/) for Linux.

TCP socket
: Configure the URL to the [Docker Engine API](https://docs.docker.com/engine/api/) manually.
:
:
:
:
:
: In the Engine API URL field, you can specify a TCP connection to a remote Docker daemon or any Docker socket path, including a custom local socket. For example, in [rootless mode](https://docs.docker.com/engine/security/rootless/), the Docker daemon runs via a `systemd` user service with a unique identifier, so the socket path will be something like `unix:///run/user/1000/docker.sock`.
:
:
:
:
:
: By default, on macOS and Linux, the Docker daemon listens for Docker Engine API requests on the Unix socket at `unix:///var/run/docker.sock`.
:
:
:
:
:
: If you are using [Docker Desktop](https://www.docker.com/products/docker-desktop/) for Windows, you can connect to the Docker Engine through a named pipe at `npipe:////./pipe/docker_engine` or a TCP socket at `tcp://localhost:2375`.
:
:
:
:
:
: You can also connect to [Podman](https://podman.io/), which has an API that is equivalent to the Docker Engine API. For more information, refer to [Podman](podman.html).
:
:
:
:
:
: > **Note:**
: > Since the Certificates folder field specifies any folder with certificates, this field corresponds to the `DOCKER_CERT_PATH` environment variable. For more information, refer to [Client modes](https://docs.docker.com/engine/security/https/#client-modes) in the Docker documentation.

SSH
: Connect to a remote Docker daemon via an existing [SSH configuration](settings-tools-ssh-configurations.html) or create a new one.
:
:
:
:
:
: > **Note:**
: > Connection to a Docker daemon via SSH is supported only in IntelliJ IDEA Ultimate. This feature is not available in IntelliJ IDEA Community Edition.

WSL
: Connect to a Docker daemon running in Windows Subsystem for Linux (WSL).

Minikube
: If you are running [minikube](https://minikube.sigs.k8s.io/docs/start/), select this option to automatically detect and connect to the minikube's Docker Engine environment.
:
:
:
:
:
: If IntelliJ IDEA cannot detect minikube or if it is running remotely, run the `minikube docker-env` command to get the necessary connection information and set the following under [TCP socket](#tcp_socket):
:
:
:
:
:
: * Engine API URL: the value of `DOCKER_HOST` (with `https` as the protocol instead of `tcp`)
:
: * Certificates folder: the value of `DOCKER_CERT_PATH`

## Virtual machine path mappings for Windows and macOS hosts

The Docker Engine runs natively on Linux. On Windows and macOS, Docker is executed in a lightweight Linux virtual machine, so containers can only access files that exist inside that VM.

The table below the Docker connection configuration options lets you configure the mapping between your local file system and the virtual machine running the Docker Engine, making them available for volume mounts in containers.

![the Add button](https://resources.jetbrains.com.cn/help/img/idea/2026.2/app.expui.general.add.svg) Add `Alt+Insert` (Windows), `⌘ N` (macOS), `⌃ N` (IntelliJ IDEA Classic (macOS)), `⌘ N` (macOS System Shortcuts), `Alt+Insert` (XWin), `Alt+Insert` (GNOME), `Alt+Insert` (KDE), `Alt+Insert` (Emacs), `Ctrl+N` (Sublime Text), `⌘ N` (Sublime Text (macOS)), `Alt+Insert` (NetBeans), `Ctrl+N` (Visual Studio), `⌘ N` (Visual Studio (macOS)), `Alt+Insert` (Eclipse), `⌘ N` (Eclipse (macOS))
: Add a new mapping.

![the Remove button](https://resources.jetbrains.com.cn/help/img/idea/2026.2/app.expui.general.remove.svg) Remove `Ctrl+Y` (Windows), `⌘ ⌫` (macOS), `⌘ Y` (IntelliJ IDEA Classic (macOS)), `⌘ ⌫` (macOS System Shortcuts), `Ctrl+Y` (XWin), `Ctrl+Y` (GNOME), `Ctrl+Y` (KDE), `Ctrl+Y` (Emacs), `Ctrl+Shift+K` (Sublime Text), `⌃ ⇧ K` (Sublime Text (macOS)), `Ctrl+E` (NetBeans), `Ctrl+L` (Visual Studio), `⌘ ⇧ L` (Visual Studio (macOS)), `Ctrl+D` (Eclipse), `⌘ D` (Eclipse (macOS))
: Remove the selected mapping.

![the Edit button](https://resources.jetbrains.com.cn/help/img/idea/2026.2/app.general.inline_edit.svg) Edit `Enter` (Windows), `⏎` (macOS), `⏎` (IntelliJ IDEA Classic (macOS)), `⏎` (macOS System Shortcuts), `Enter` (XWin), `Enter` (GNOME), `Enter` (KDE), `Enter` (Emacs), `Enter` (Sublime Text), `⏎` (Sublime Text (macOS)), `Enter` (NetBeans), `Enter` (Visual Studio), `⏎` (Visual Studio (macOS)), `Enter` (Eclipse), `⏎` (Eclipse (macOS))
: Edit the selected mapping.

Virtual machine path
: The path to the directory in the virtual machine used for running this Docker Engine.

Local path
: The path to the local folder that you want to map to the corresponding directory in the virtual machine. You will not be able to bind-mount anything outside of this folder to containers that this Docker Engine runs.

For example, let's say you keep all files that you bind-mount to Docker containers in `/Users/jsmith/docker-share`. You can map this directory to `/dockerShare` on the virtual machine for your Docker Engine connection. This Docker Engine will effectively bind-mount files to containers from `/dockerShare`, because that's where it can access the files that you mapped from `/Users/jsmith/docker-share`.

This does not affect you as a user running containers, because you still configure bind mounts and volumes as a mapping between some path on your host machine and some path inside the container. However, you can't mount anything outside of the directory that you mapped to the virtual machine.

Let's say you run a container and mount the directory with your application artifacts `/Users/jsmith/docker-share/out` on the host to `/usr/local/tomcat/webapps` in the container. In this case, the Docker Engine actually mounts `/dockerShare/out`, because that's where it has access to your files through virtual machine mapping.

![Path mapping for virtual machine running Docker Engine](https://resources.jetbrains.com.cn/help/img/idea/2026.2/docker_path_mappings_for_vm.png)

For more information about volumes and bind mounts, refer to [Manage data in Docker](https://docs.docker.com/storage/).

## See also

### Related

[Docker](docker.html)

### Reference

[Docker Registry settings](settings-docker-registry.html) [Docker console settings](settings-docker-console.html) [Services tool window](services-tool-window.html)

