2014-04-16 00:53:12 +00:00
|
|
|
page_title: Installation on Windows
|
2014-05-26 01:52:57 +00:00
|
|
|
page_description: Docker installation on Microsoft Windows
|
2014-04-16 00:53:12 +00:00
|
|
|
page_keywords: Docker, Docker documentation, Windows, requirements, virtualbox, boot2docker
|
|
|
|
|
|
|
|
# Windows
|
2014-06-09 00:36:49 +00:00
|
|
|
> **Note:**
|
|
|
|
> Docker has been tested on Windows 7.1 and 8; it may also run on older versions.
|
2014-06-21 21:12:10 +00:00
|
|
|
> Your processor needs to support hardware virtualization.
|
2014-05-26 01:52:57 +00:00
|
|
|
|
2014-06-09 09:23:54 +00:00
|
|
|
The Docker Engine uses Linux-specific kernel features, so to run it on Windows
|
2015-03-27 21:54:37 +00:00
|
|
|
we need to use a lightweight virtual machine (VM). You use the **Windows Docker
|
|
|
|
Client** to control the virtualized Docker Engine to build, run, and manage
|
|
|
|
Docker containers.
|
2014-06-09 00:36:49 +00:00
|
|
|
|
|
|
|
To make this process easier, we've designed a helper application called
|
2015-03-27 21:54:37 +00:00
|
|
|
[Boot2Docker](https://github.com/boot2docker/boot2docker) creates a Linux virtual
|
|
|
|
machine on Windows to run Docker on a Linux operating system.
|
|
|
|
|
|
|
|
Although you will be using Windows Docker client, the docker engine hosting the
|
|
|
|
containers will still be running on Linux. Until the Docker engine for Windows
|
|
|
|
is developed, you can launch only Linux containers from your Windows machine.
|
2014-05-26 01:52:57 +00:00
|
|
|
|
2014-06-08 20:11:50 +00:00
|
|
|
## Demonstration
|
|
|
|
|
|
|
|
<iframe width="640" height="480" src="//www.youtube.com/embed/oSHN8_uiZd4?rel=0" frameborder="0" allowfullscreen></iframe>
|
2014-04-16 00:53:12 +00:00
|
|
|
|
2014-05-26 01:52:57 +00:00
|
|
|
## Installation
|
2014-04-16 00:53:12 +00:00
|
|
|
|
2015-03-27 21:54:37 +00:00
|
|
|
1. Download the latest release of the
|
|
|
|
[Docker for Windows Installer](https://github.com/boot2docker/windows-installer/releases/latest).
|
|
|
|
2. Run the installer, which will install Docker Client or Windows, VirtualBox,
|
|
|
|
Git for Windows (MSYS-git), the boot2docker Linux ISO, and the Boot2Docker
|
|
|
|
management tool.
|
2014-05-26 01:52:57 +00:00
|
|
|
![](/installation/images/windows-installer.png)
|
2015-03-27 21:54:37 +00:00
|
|
|
3. Run the **Boot2Docker Start** shortcut from your Desktop or “Program Files →
|
|
|
|
Boot2Docker for Windows”.
|
2014-05-26 01:52:57 +00:00
|
|
|
The Start script will ask you to enter an ssh key passphrase - the simplest
|
|
|
|
(but least secure) is to just hit [Enter].
|
2014-06-08 22:53:20 +00:00
|
|
|
|
2015-03-27 21:54:37 +00:00
|
|
|
4. The **Boot2Docker Start** will start a unix shell already configured to manage
|
|
|
|
Docker running inside the virtual machine. Run `docker version` to see
|
|
|
|
if it is working correctly:
|
2014-04-16 00:53:12 +00:00
|
|
|
|
2015-03-27 21:54:37 +00:00
|
|
|
![](/installation/images/windows-boot2docker-start.png)
|
2014-04-16 00:53:12 +00:00
|
|
|
|
2015-03-27 21:54:37 +00:00
|
|
|
## Running Docker
|
2014-04-16 00:53:12 +00:00
|
|
|
|
2015-03-27 21:54:37 +00:00
|
|
|
{{ include "no-remote-sudo.md" }}
|
2014-06-08 22:53:20 +00:00
|
|
|
|
2015-03-27 21:54:37 +00:00
|
|
|
**Boot2Docker Start** will automatically start a shell with environment variables
|
|
|
|
correctly set so you can start using Docker right away:
|
2014-06-08 22:53:20 +00:00
|
|
|
|
2015-03-27 21:54:37 +00:00
|
|
|
Let's try the `hello-world` example image. Run
|
2014-06-08 22:53:20 +00:00
|
|
|
|
2015-03-27 21:54:37 +00:00
|
|
|
$ docker run hello-world
|
2014-04-16 00:53:12 +00:00
|
|
|
|
2015-03-27 21:54:37 +00:00
|
|
|
This should download the very small `hello-world` image and print a
|
|
|
|
`Hello from Docker.` message.
|
2014-04-16 00:53:12 +00:00
|
|
|
|
2015-03-27 21:54:37 +00:00
|
|
|
## Using docker from Windows Command Line Prompt (cmd.exe)
|
2014-12-29 08:19:42 +00:00
|
|
|
|
2015-03-27 21:54:37 +00:00
|
|
|
Launch a Windows Command Line Prompt (cmd.exe).
|
2014-04-16 00:53:12 +00:00
|
|
|
|
2015-03-27 21:54:37 +00:00
|
|
|
Boot2Docker command requires `ssh.exe` to be in the PATH, therefore we need to
|
|
|
|
include `bin` folder of the Git installation (which has ssh.exe) to the `%PATH%`
|
|
|
|
environment variable by running:
|
2014-04-16 00:53:12 +00:00
|
|
|
|
2015-03-27 21:54:37 +00:00
|
|
|
set PATH=%PATH%;"c:\Program Files (x86)\Git\bin"
|
2014-04-16 00:53:12 +00:00
|
|
|
|
2015-03-27 21:54:37 +00:00
|
|
|
and then we can run the `boot2docker start` command to start the Boot2Docker VM.
|
|
|
|
(Run `boot2docker init` command if you get an error saying machine does not
|
|
|
|
exist.) Then copy the instructions for cmd.exe to set the environment variables
|
|
|
|
to your console window and you are ready to run docker commands such as
|
|
|
|
`docker ps`:
|
2014-04-16 00:53:12 +00:00
|
|
|
|
2015-03-27 21:54:37 +00:00
|
|
|
![](/installation/images/windows-boot2docker-cmd.png)
|
2014-12-05 20:08:23 +00:00
|
|
|
|
2015-03-27 21:54:37 +00:00
|
|
|
## Using docker from PowerShell
|
2014-12-05 20:08:23 +00:00
|
|
|
|
2015-03-27 21:54:37 +00:00
|
|
|
Launch a PowerShell window, then you need to add `ssh.exe` to your PATH:
|
2014-12-19 06:43:34 +00:00
|
|
|
|
2015-03-27 21:54:37 +00:00
|
|
|
$Env:Path = "${Env:Path};c:\Program Files (x86)\Git\bin"
|
2014-12-19 06:43:34 +00:00
|
|
|
|
2015-03-27 21:54:37 +00:00
|
|
|
and after running `boot2docker start` command it will print PowerShell commands
|
|
|
|
to set the environment variables to connect Docker running inside VM. Run these
|
|
|
|
commands and you are ready to run docker commands such as `docker ps`:
|
|
|
|
|
|
|
|
![](/installation/images/windows-boot2docker-powershell.png)
|
|
|
|
|
|
|
|
> NOTE: You can alternatively run `boot2docker shellinit | Invoke-Expression`
|
|
|
|
> command to set the environment variables instead of copying and pasting on
|
|
|
|
> PowerShell.
|
2014-06-08 23:02:57 +00:00
|
|
|
|
2014-05-26 01:52:57 +00:00
|
|
|
# Further Details
|
2014-05-21 08:29:24 +00:00
|
|
|
|
2014-06-09 00:36:49 +00:00
|
|
|
The Boot2Docker management tool provides several commands:
|
2014-05-21 08:29:24 +00:00
|
|
|
|
2015-03-27 21:54:37 +00:00
|
|
|
$ boot2docker
|
|
|
|
Usage: boot2docker.exe [<options>] {help|init|up|ssh|save|down|poweroff|reset|restart|config|status|info|ip|shellinit|delete|download|upgrade|version} [<args>]
|
|
|
|
|
|
|
|
## Upgrading
|
2014-05-21 08:29:24 +00:00
|
|
|
|
2015-03-27 21:54:37 +00:00
|
|
|
1. Download the latest release of the [Docker for Windows Installer](
|
|
|
|
https://github.com/boot2docker/windows-installer/releases/latest)
|
|
|
|
|
|
|
|
2. Run the installer, which will update the Boot2Docker management tool.
|
|
|
|
|
|
|
|
3. To upgrade your existing virtual machine, open a terminal and run:
|
|
|
|
|
|
|
|
boot2docker stop
|
|
|
|
boot2docker download
|
|
|
|
boot2docker start
|
2014-05-28 04:42:19 +00:00
|
|
|
|
2014-06-08 23:02:57 +00:00
|
|
|
## Container port redirection
|
|
|
|
|
2015-03-27 21:54:37 +00:00
|
|
|
If you are curious, the username for the boot2docker default user is `docker`
|
|
|
|
and the password is `tcuser`.
|
2014-06-13 22:38:45 +00:00
|
|
|
|
2015-03-27 21:54:37 +00:00
|
|
|
The latest version of `boot2docker` sets up a host only network adaptor which
|
|
|
|
provides access to the container's ports.
|
2014-05-28 04:42:19 +00:00
|
|
|
|
|
|
|
If you run a container with an exposed port:
|
|
|
|
|
2014-06-13 01:24:09 +00:00
|
|
|
docker run --rm -i -t -p 80:80 nginx
|
2014-05-28 04:42:19 +00:00
|
|
|
|
2014-06-13 01:24:09 +00:00
|
|
|
Then you should be able to access that nginx server using the IP address reported
|
2014-05-28 04:42:19 +00:00
|
|
|
to you using:
|
|
|
|
|
2014-06-08 23:02:57 +00:00
|
|
|
boot2docker ip
|
2014-05-28 04:42:19 +00:00
|
|
|
|
2014-06-09 00:36:49 +00:00
|
|
|
Typically, it is 192.168.59.103, but it could get changed by Virtualbox's DHCP
|
|
|
|
implementation.
|
2014-05-28 04:42:19 +00:00
|
|
|
|
2014-05-26 01:52:57 +00:00
|
|
|
For further information or to report issues, please see the [Boot2Docker site](http://boot2docker.io)
|
2015-03-27 21:54:37 +00:00
|
|
|
|
|
|
|
## Login with PUTTY instead of using the CMD
|
|
|
|
|
|
|
|
Boot2Docker generates and uses the public/private key pair in your `%USERPROFILE%\.ssh`
|
|
|
|
directory so to log in you need to use the private key from this same directory.
|
|
|
|
|
|
|
|
The private key needs to be converted into the format PuTTY uses.
|
|
|
|
|
|
|
|
You can do this with
|
|
|
|
[puttygen](http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html):
|
|
|
|
|
|
|
|
- Open `puttygen.exe` and load ("File"->"Load" menu) the private key from
|
|
|
|
`%USERPROFILE%\.ssh\id_boot2docker`
|
|
|
|
- then click: "Save Private Key".
|
|
|
|
- Then use the saved file to login with PuTTY using `docker@127.0.0.1:2022`.
|