- Get started: Set up Linux Containers on Windows 10
- Prerequisites
- Install Docker Desktop
- Run Your First Linux Container
- Docker Desktop WSL 2 backend on Windows
- Prerequisites
- Turn on Docker Desktop WSL 2
- Enabling Docker support in WSL 2 distros
- Run Linux containers on Windows
- 2. Requirements
- 3. Install Docker for Windows
- 4. Download the Ubuntu container image
- 5. Prepare the container environment
- 6. More Docker preparation
- 7. Run an Ubuntu container on Hyper-V
- 8. Getting help
- Linux containers on Windows 10
- Linux containers in a Moby VM
- Is it possible to run linux docker image on windows
- 2 Answers 2
Get started: Set up Linux Containers on Windows 10
The exercise will walk through creating and running Linux containers on Windows 10.
In this quick start you will accomplish:
This quick start is specific to Windows 10. Additional quick start documentation can be found in the table of contents on the left-hand side of this page.
Prerequisites
Please make sure you meet the following requirements:
- One physical computer system running Windows 10 Professional, Windows 10 Enterprise, or Windows Server 2019 version 1809 or later
- Make sure Hyper-V is enabled.
Install Docker Desktop
Download Docker Desktop and run the installer (You will be required to login. Create an account if you don’t have one already). Detailed installation instructions are available in the Docker documentation.
Run Your First Linux Container
In order to run Linux containers, you need to make sure Docker is targeting the correct daemon. You can toggle this by selecting Switch to Linux Containers from the action menu when clicking on the Docker whale icon in the system tray. If you see Switch to Windows Containers , then you are already targeting the Linux daemon.
Once you’ve confirmed you are targeting the correc daemon, run the container with the following command:
docker run --rm busybox echo hello_world
The container should run, print «hello_world», then exit.
When you query docker images , you should see the Linux container image that you just pulled an ran:
docker images REPOSITORY TAG IMAGE ID CREATED SIZE busybox latest 59788edf1f3e 4 weeks ago 3.41MB
Docker Desktop WSL 2 backend on Windows
Windows Subsystem for Linux (WSL) 2 is a full Linux kernel built by Microsoft, which lets Linux distributions run without managing virtual machines. With Docker Desktop running on WSL 2, users can leverage Linux workspaces and avoid maintaining both Linux and Windows build scripts. In addition, WSL 2 provides improvements to file system sharing and boot time.
Docker Desktop uses the dynamic memory allocation feature in WSL 2 to improve the resource consumption. This means Docker Desktop only uses the required amount of CPU and memory resources it needs, while allowing CPU and memory-intensive tasks such as building a container, to run much faster.
Additionally, with WSL 2, the time required to start a Docker daemon after a cold start is significantly faster.
Prerequisites
Before you turn on the Docker Desktop WSL 2 feature, ensure you have:
- At a minimum WSL version 1.1.3.0., but ideally the latest version of WSL to avoid Docker Desktop not working as expected.
- Windows 10, version 21H2 or later, or Windows 11, version 21H2 or later. For more information, see System requirements.
- Installed the WSL 2 feature on Windows. For detailed instructions, refer to the Microsoft documentation.
Turn on Docker Desktop WSL 2
Important
To avoid any potential conflicts with using WSL 2 on Docker Desktop, you must uninstall any previous versions of Docker Engine and CLI installed directly through Linux distributions before installing Docker Desktop.
- Download and install the latest version of Docker Desktop for Windows.
- Follow the usual installation instructions to install Docker Desktop. Depending on which version of Windows you are using, Docker Desktop may prompt you to turn on WSL 2 during installation. Read the information displayed on the screen and turn on the WSL 2 feature to continue.
- Start Docker Desktop from the Windows Start menu.
- Navigate to Settings.
- From the General tab, select Use WSL 2 based engine.. If you have installed Docker Desktop on a system that supports WSL 2, this option is turned on by default.
- Select Apply & Restart.
Now docker commands work from Windows using the new WSL 2 engine.
Enabling Docker support in WSL 2 distros
WSL 2 adds support for “Linux distros” to Windows, where each distro behaves like a VM except they all run on top of a single shared Linux kernel.
Docker Desktop does not require any particular Linux distros to be installed. The docker CLI and UI all work fine from Windows without any additional Linux distros. However for the best developer experience, we recommend installing at least one additional distro and enable Docker support:
- Ensure the distribution runs in WSL 2 mode. WSL can run distributions in both v1 or v2 mode. To check the WSL mode, run:
$ wsl.exe --set-version (distro name) 2
Run Linux containers on Windows
It is now possible to run Docker containers on Windows 10 and Windows Server, leveraging Ubuntu as a hosting base.
Imagine running your own Linux applications on Windows, using a Linux distribution you are comfortable with: Ubuntu!
It is now possible to do so using the power of Docker technology and Hyper-V virtualization on Windows.
Originally authored by Mathieu Trudel-Lapierre.
2. Requirements
You will need a 64-bit x86 PC with 8GiB of RAM running Windows 10 or Windows Server, updated to include the Windows 10 Fall Creator update, released October 2017.
You will also need a recent installation of Docker.
Finally, you will need to make sure you have installed a program for decompressing the Ubuntu host container image, e.g. 7-Zip or XZ Utils
3. Install Docker for Windows
Download Docker for Windows from Docker Store.
Once downloaded, proceed with the installation steps, and either logout or reboot of your system as indicated by the installer.
After reboot, Docker will be started. Docker requires that the Hyper-V feature is enabled, so if necessary will ask you to enable it and restart. Click OK for Docker to enable Hyper-V and restart your system.
4. Download the Ubuntu container image
Download the latest Ubuntu container image for Windows from the Canonical Partner Images website
Once downloaded, extract the image, using e.g. 7-Zip, or XZ Utils:
C:\Users\mathi\> .\xz.exe -d xenial-container-hyper-v.vhdx.xz
5. Prepare the container environment
First, create two directories:
Create C:\lcow, which will be used as scratch space for Docker while preparing the containers.
Also create C:\Program Files\Linux Containers. This is where the Ubuntu container image will live.
You will need to give this folder extra permissions to allow Docker to use the images from it. Run the following Powershell script in an administrator Powershell window:
param( [string] $Root ) # Give the virtual machines group full control $acl = Get-Acl -Path $Root $vmGroupRule = new-object System.Security.AccessControl.FileSystemAccessRule("NT VIRTUAL MACHINE\Virtual Machines", "FullControl","ContainerInherit,ObjectInherit", "None", "Allow") $acl.SetAccessRule($vmGroupRule) Set-Acl -AclObject $acl -Path $Root
Save this file as set_perms.ps1 and run it:
TIP You may need to run ‘Set-ExecutionPolicy -Scope process unrestricted’ to be allowed to run unsigned Powershell scripts.
C:\Users\mathi\> .\set_perms.ps1 "C:\Program Files\Linux Containers" C:\Users\mathi\>
Now, copy the Ubuntu container image .vhdx file that was decompressed at the previous step to uvm.vhdx under C:\Program Files\Linux Containers.
6. More Docker preparation
Docker for Windows requires some pre-release features in order to work with Hyper-V isolation. While these features are not yet available in the Docker CE installation that was done previously, the necessary files can be downloaded from master.dockerproject.org.
Retrieve dockerd.exe and docker.exe from master.dockerproject.org, and put the two programs somewhere safe, such as in your own folder. They will be used to start the Ubuntu container in the next step.
7. Run an Ubuntu container on Hyper-V
You’re now ready to start your container. First, open a Command-line prompt (cmd.exe) as Administrator, and start dockerd.exe with the right environment:
C:\Users\mathi\> set LCOW_SUPPORTED=1 C:\Users\mathi\> .\dockerd.exe -D --data-root C:\lcow
Docker already running?
If the Docker installer sets Docker to run automatically at boot, you may need to quit the already running daemon, via its toolbar icon, before running the above commands.
Then, start a Powershell window as Administrator; and run docker.exe, instructing it to pull the image for your container:
C:\Users\mathi\> .\docker.exe pull ubuntu
We can now finally start the container. Run docker.exe again, and tell it to run the new image:
C:\Users\mathi\> .\docker.exe run -it ubuntu
Congratulations! You have successfully set up your system to use containers with Hyper-V isolation on Windows, and have run your very own Ubuntu container.
8. Getting help
If you need some guidance getting started with the Ubuntu container images for Hyper-V, or if you get stuck, help is always at hand:
Linux containers on Windows 10
Linux containers make up a huge percent of the overall container ecosystem and are fundamental to both developer experiences and production environments. Since containers share a kernel with the container host, however, running Linux containers directly on Windows isn’t an option. This is where virtualization comes into the picture.
Linux containers in a Moby VM
To run Linux containers in a Linux VM, follow the instructions in Docker’s get-started guide.
Docker has been able to run Linux containers on Windows desktop since it was first released in 2016 (before Hyper-V isolation or Linux containers on Windows were available) using a LinuxKit based virtual machine running on Hyper-V.
In this model, Docker Client runs on Windows desktop but calls into Docker Daemon on the Linux VM.
In this model, all Linux containers share a single Linux-based container host and all Linux containers:
- Share a kernel with each other and the Moby VM, but not with the Windows host.
- Have consistent storage and networking properties with Linux containers running on Linux (since they are running on a Linux VM).
It also means the Linux container host (Moby VM) needs to be running Docker Daemon and all of Docker Daemon’s dependencies.
To see if you’re running with Moby VM, check Hyper-V Manager for Moby VM using either the Hyper-V Manager UI or by running Get-VM in an elevated PowerShell window.
Is it possible to run linux docker image on windows
I’ve built a docker image on my mac and saved it to a tar(client’s windows server doesn’t have internet access to the outside world so I’ll need to transfer this file to them). From what I understand, on a Windows machine, I can install docker toolbox with VirtualBox, then I can start Docker QuickStartTerminal, which will start a docker machine which is essentially a linux VM. Then, is it possible to run this docker image on a windows machine, is it specific to certain versions of windows? Thank you for your time!
As long as the docker server/engine is running under a Linux kernel, it is always possible to run the Linux docker image under it. In your case, yes! because docker engine is running under Linux VM under VirtualBox.
2 Answers 2
It depends what you mean by running on Windows , if it is in Windows 7/8/10, or in Windows Server 2016
It is possible with Windows 7/8/10, as it is in fact a Linux VM
It is not possible with Windows Server 2016
You will need a Windows Server 2016 to launch a Windows container, and a Linux server to launch a Linux container.
I will update with a reference
Edit: If you have Windows Server 2016, you can launch an IIS docker container
but you can’t launch this IIS docker container from a Linux server running docker.
The same applies for a SQL docker container
When you create a Windows docker container, your Dockerfile starts with something like
while when you create a Linux container, your Dockerfile will start with