- In a previous video, which
I've linked here and below, I showed you how to
install WSL version two on a windows 10 laptop. I was actually using this
laptop in the demonstration. In this video I'm gonna show
you how to install Docker on a computer that's
using WSL version two. (upbeat music) In this example I'm looking
at the documentation on Docker's website. So docs.docker.com/docker-for-windows/wsl/ and we given information about how to use the Docker
desktop with WSL version two. Now before you get started, they are some prerequisites. So number one, you need to install Windows
10 version 2004 or higher. So if I run winver, I can see that I'm using
Microsoft Windows 10, 2004, OS build is this. Now I'm not using a professional
version of Windows here. I'm simply using Windows Home Edition. You don't need the professional
enterprise versions of Windows 10 to use Docker. You can run it on a
Windows 10 Home computer. You can see that I've got 8
gig of Ram in this computer. It's a 64-bit operating system. So 64-bit version of Windows 10. So some people have been
struggling to get version 2004. You have to do a manual install of 2004, but that is once again
the required minimum, if you wanna install Docker on Windows 10. So hopefully Microsoft
will resolve the issues, but you can manually bypass this and get it installed if you need to. Okay you need to enable WSL version two and we're told that we need to refer to the Microsoft documentation
if we wanna do that. So they do have documentation
showing you that, but the process is actually very simple so I'll show you this right now. Basically you need to
turn on Windows features and the two features you need are the Windows Hypervisor Platform and the Windows Subsystem for Linux. So by checking those two check boxes, you basically enabled WSL version two. And the next thing you need
to do is download and install the Linux kernel update package. I've once again demonstrated
this in the previous video. So have a look at this video, if you haven't got WSL
version two installed. So once you meet the prerequisites, next step is to download the
Docker Desktop Stable release. So in this example, I'll
download the release 232 and I'm simply gonna click, Get Docker, to download it to my local hard drive. It's about 391 mega in size, so just be aware of the size, but as soon as that's I'll run it. So it's busy downloading
to my downloads directory. Okay so there you go, It's downloaded. I'll show in folder. And all I need to do now is
double click on the executable to install it. Windows is complaining that
I'm trying to install an app that isn't Microsoft verified. I'm gonna click install anyway. Click yes to allow the app
to make changes to my device. I now need to specify the configuration. So I wanna enable WSL
version two Windows features and I wanna add a shortcut to my desktop. Because I'm using Windows Home here the only option is to use WSL version two. Windows Home doesn't support Hyper-V. So I can't use Hyper-V. The only option is to use WSL version two. If you've got Windows Professional, you could decide to use
Hyper-V view if you want to. But in this example, once again, cause I'm using Windows Home, I'm gonna use WSL version two, and I'm gonna click okay to install it. All you need to do basically now is wait for the software to install. Not much else to do. It takes a while to install. Okay so the installation
has now succeeded. I'm gonna click close. You may be asked to log off
and then log back into Windows, so it didn't happen this time, but I have seen that happen
in previous installs, but once it's installed, you can simply start Docker Desktop. I can see that Linux Containers, WSL version two backend is starting. You can see the little Docker
icon is displaying here telling me that Docker is starting. I'm told that the Docker
Desktop is running, open PowerShell and start
hacking with Docker or Compose or click on the up arrow, click on the icon, and what I'll do is display the dashboard. Okay so I'm told that no
containers are running, try running a container by
copying and pasting this command into your terminal and then come back. So what I'll do is start Ubuntu 2004 LTS. And before I do anything else, I'm gonna copy this command and I'm gonna save that
command in notepad. I wanna show you what that command does. But before I run that, I'm gonna go to settings, resources, WSL integration and what you'll notice is we've got this option. Enable integration with
my default WSL distro. So it's gonna be using
the default WSL distro and you might not know
which distro that is. So what I'll do is run PowerShell and use the command wsl -l -v. And that shows me that this is my default WSL implementation. The command wsl -l shows me that 2004 is my default distro. You can enable it on multiple distros. In this example, I've got
three Linux distros installed using WSL version two, but it's using my default one. Under general notice this option, use the WSL 2 based engine. Windows Home can only run
WSL version 2 backend. WSL version two provides
better performance than the legacy Hype-V backend, and you can learn more about that. That basically just
takes us back to the page that I started with. But basically here, they are showing you the
commands that I used. You need to use WSL version 2 with Docker. So back in PowerShell as an example, you can see that all
of my virtual machines are using WSL version two. If they're not, you can set the version to version two or set the default
version using this command to version two. Okay but that's probably
not what you wanna see. So in my Ubuntu 2004 Shell, so lsb release-a. You can see I'm using Ubuntu 2004, what I'm gonna do is copy this
command that they gave us, and I'll paste that in, and I'll try and paste that in, there you go. So Docker run, Docker getting started. We can see that it's pulling
they're getting started, Docker image and that's now running. So what I can do as an example is type docker run hello world, and I typed that wrong,
so let me try that again. I'll make this bigger. Here is the command once again, I'm told that that image
couldn't be found a locally. So a Docker pull was used. The Pull completed and it says, "Hello from Docker! This message shows you
that your installation appears to be working correctly." So what I've done now is get Docker to run within an Ubuntu virtual machine, running on a Windows 10 the
laptop using Windows Home. But let's try something more exciting. So let's run the command
that they mentioned here. This will allow me to
run an Ubuntu Container. So docker run -ubuntu bash. It's doing a pull and then
downloading the operating system and what you'll notice here is the originally looked like that, but now it looks like this. I'm actually running Ubuntu within Docker, within Ubuntu, within
windows on this laptop. So I'm running operating systems within other operating systems. So as an example, if I type lsb-release a,
this command doesn't work, I could type uname -a and that tells me the version of Linux that I'm using. Notice what happens when I type exit, I'm exiting out of the Docker container and I'm now directly within
my Ubuntu Virtual Machine running within WSL version two , so that command now works. And if I type exit here, I'm exiting out into Windows. So let me show you that process again. Here I have a Windows operating system running on a piece of hardware, this laptop here. What I'm gonna do is run Ubuntu 2004, so I'm now running Ubuntu within Windows. This is a lightweight
virtual machine running within WSL version two on
Windows 10, Home edition. Type docker run ubuntu bash. I'm now running a Ubuntu, within Docker, within a Linux Virtual
Machine, within windows. Now once again, the lsb_release a command doesn't work in this Docker container. So I'll type apt update
to update my references. This is within the Docker Container. So the operating system
has now been updated, I'll clear the screen and type apt install lsb-release. Say yes to install the
additional software. So what I'm doing now is
installing additional software within the Docker Container. So this isn't Ubuntu Docker
Container once again, say lsb-release-a, you can now see that
this command is working. I'm using Ubuntu 2004 LTS. If I type exit, notice the prompt has
changed from that to this. I'm no longer inside of
the Docker Container. I'm now within the Linux Virtual Machine. And now if I type exit once again, I'm back in Windows. So this is the thing with virtualization. I can run operating systems,
within operating systems, within operating systems. So again I had a Linux operating system running within Docker, which was running within
a Linux Virtual Machine, running within WSL version two on a Windows operating system, running on a laptop. So I'm running operating systems,
within operating systems, but that's how you get Docker running on a Windows 10 computer. (upbeat music)