The Docker Engine and client aren't included with Windows and need to be installed and configured individually. Furthermore, the Docker Engine can accept many custom configurations. Some examples include configuring how the daemon accepts incoming requests, default networking options, and debug/log settings. On Windows, these configurations can be specified in a configuration file or by using Windows Service control manager. This document details how to install and configure the Docker Engine, and also provides some examples of commonly used configurations.
- Cd 'C: Program Files Docker Docker'./DockerCli.exe -SwitchDaemon In Powershell elevated access solved my issue. This isn't a workable solution to be honest for Linux containers users (assuming Docker is configured to use Linux containers), since it papers over an issue with Linux Containers by switching Docker over to use Windows containers.
- The next docker exec command wouldn't find it running in order to attach itself to that container and execute any command: it is too late. The container has already exited. The docker exec command runs a new command in a running container. The command started using docker exec will only run while the container's primary process (PID 1) is running.
- If your CPU does not support virtualization, or if you do not have a 64-bit CPU, you cannot run Docker locally. Operating System If you do not run a 64-bit version of Windows Windows 10 Pro, Enterprise, or Education; 1511 November update, Build 10586 or later, you cannot run Docker for Windows.
- I am running Windows Subsystem Linux (WSL) with Ubuntu as client OS under Windows 10. Now I installed Docker Desktop on the Windows host and enabled the WSL integration in the Docker settings. That works fine so far, I can access the Docker daemon running on the Windows host from my WSL Ubuntu client.
Install Docker
Product family for all Windows base OS container images.
You need Docker in order to work with Windows Containers. Docker consists of the Docker Engine (dockerd.exe), and the Docker client (docker.exe). The easiest way to get everything installed is in the quickstart guide, which will help you get everything set up and run your first container.
For scripted installations, see Use a script to install Docker EE.
Before you can use Docker, you'll need to install the container images. For more information, see docs for our container base images.
Configure Docker with a configuration file
The preferred method for configuring the Docker Engine on Windows is using a configuration file. The configuration file can be found at 'C:ProgramDataDockerconfigdaemon.json'. You can create this file if it doesn't already exist.
Note
Not every available Docker configuration option applies to Docker on Windows. The following example shows the configuration options that do apply. For more information about Docker Engine configuration, see Docker daemon configuration file.
You only need to add the desired configuration changes to the configuration file. For example, the following sample configures the Docker Engine to accept incoming connections on port 2375. All other configuration options will use default values.
Likewise, the following sample configures the Docker daemon to keep images and containers in an alternate path. If not specified, thedefault is c:programdatadocker
.
The following sample configures the Docker daemon to only accept secured connections over port 2376.
Configure Docker on the Docker service
The Docker Engine can also be configured by modifying the Docker service with sc config
. Using this method, Docker Engine flags are set directly on the Docker service. Run the following command in a command prompt (cmd.exe not PowerShell):
Note
You don't need to run this command if your daemon.json file already contains the 'hosts': ['tcp://0.0.0.0:2375']
entry.
Common configuration
The following configuration file examples show common Docker configurations. These can be combined into a single configuration file.
Default network creation
To configure the Docker Engine so that it doesn't create a default NAT network, use the following configuration.
For more information, see Manage Docker Networks.
Set Docker security group
When you've signed in to the Docker host and are locally running Docker commands, these commands are run through a named pipe. By default, only members of the Administrators group can access the Docker Engine through the named pipe. To specify a security group that has this access, use the group
flag.
Proxy configuration
To set proxy information for docker search
and docker pull
, create a Windows environment variable with the name HTTP_PROXY
or HTTPS_PROXY
, and a value of the proxy information. This can be completed with PowerShell using a command similar to this:
Once the variable has been set, restart the Docker service.
For more information, see Windows Configuration File on Docker.com.
How to uninstall Docker
This section will tell you how to uninstall Docker and perform a full cleanup of Docker system components from your Windows 10 or Windows Server 2016 system.
Note
You must run all commands in these instructions from an elevated PowerShell session.
Prepare your system for Docker's removal
Before you uninstall Docker, make sure no containers are running on your system.
Docker Service Not Running On Windows
Run the following cmdlets to check for running containers:
It's also good practice to remove all containers, container images, networks, and volumes from your system before removing Docker. You can do this by running the following cmdlet:
Uninstall Docker
Next, you'll need to actually uninstall Docker.
To uninstall Docker on Windows 10
- Go to Settings > Apps on your Windows 10 machine
- Under Apps & Features, find Docker for Windows
- Go to Docker for Windows > Uninstall
To uninstall Docker on Windows Server 2016:
From an elevated PowerShell session, use the Uninstall-Package and Uninstall-Module cmdlets to remove the Docker module and its corresponding Package Management Provider from your system, as shown in the following example:
Tip
You can find the Package Provider that you used to install Docker with PS C:> Get-PackageProvider -Name *Docker*
Clean up Docker data and system components
After you uninstall Docker, you'll need to remove Docker's default networks so their configuration won't remain on your system after Docker is gone. You can do this by running the following cmdlet:
To remove Docker's default networks on Windows Server 2016.
Run the following cmdlet to remove Docker's program data from your system:
You may also want to remove the Windows optional features associated with Docker/containers on Windows.
This includes the 'Containers' feature, which is automatically enabled on any Windows 10 or Windows Server 2016 when Docker is installed. It may also include the 'Hyper-V' feature, which is automatically enabled on Windows 10 when Docker is installed, but must be explicitly enabled on Windows Server 2016.
Important
The Hyper-V feature is a general virtualization feature that enables much more than just containers. Before disabling the Hyper-V feature, make sure there are no other virtualized components on your system that require Hyper-V.
Docker Not Running On Windows 10 Home
To remove Windows features on Windows 10:
- Go to Control Panel > Programs > Programs and Features > Turn Windows features on or off.
- Find the name of the feature or features you want to disable—in this case, Containers and (optionally) Hyper-V.
- Uncheck the box next to the name of the feature you want to disable.
- Select 'OK'
Docker Not Running On Windows
To remove Windows features on Windows Server 2016:
From an elevated PowerShell session, run the following cmdlets to disable the Containers and (optionally) Hyper-V features from your system:
Reboot your system
Docker Not Running On Windows Vm
To finish uninstallation and cleanup, run the following cmdlet from an elevated PowerShell session to reboot your system: