github.com/akashshinde/docker@v1.9.1/docs/installation/windows.md (about)

     1  <!--[metadata]>
     2  +++
     3  title = "Installation on Windows"
     4  description = "Docker installation on Microsoft Windows"
     5  keywords = ["Docker, Docker documentation, Windows, requirements, virtualbox,  boot2docker"]
     6  [menu.main]
     7  parent = "smn_engine"
     8  +++
     9  <![end-metadata]-->
    10  
    11  # Windows
    12  
    13  > **Note**: This release of Docker deprecates the Boot2Docker command line in
    14  > favor of Docker Machine.  Use the Docker Toolbox to install Docker Machine as
    15  > well as the other Docker tools.
    16  
    17  You install Docker using Docker Toolbox. Docker Toolbox includes the following Docker tools:
    18  
    19  * Docker Machine for running the `docker-machine` binary
    20  * Docker Engine for running the `docker` binary
    21  * Kitematic, the Docker GUI
    22  * a shell preconfigured for a Docker command-line environment
    23  * Oracle VM VirtualBox
    24  
    25  Because the Docker daemon uses Linux-specific kernel features, you can't run
    26  Docker natively in Windows. Instead, you must use `docker-machine` to create and attach to a Docker VM on your machine. This VM hosts Docker for you on your Windows system.
    27  
    28  The Docker VM is lightweight Linux virtual machine made specifically to run the
    29  Docker daemon on Windows. The VirtualBox VM runs completely from RAM, is a
    30  small ~24MB download, and boots in approximately 5s.
    31  
    32  ## Requirements
    33  
    34  Your machine must be running Windows 7, 8/8.1 or newer to run Docker. Windows 10 is not currently supported. To find out what version of Windows you have:
    35  
    36  1. Right click the Windows Start Menu and choose **System**.
    37  
    38      ![Which version](images/win_ver.png)
    39  
    40      If you are using an unsupported version of Windows, you should consider
    41      upgrading your operating system in order to try out Docker.
    42  
    43  2. Make sure your CPU supports [virtualization technology](https://en.wikipedia.org/wiki/X86_virtualization)
    44  and virtualization support is enabled in BIOS and recognized by Windows.
    45  
    46      #### For Windows 8 or 8.1
    47  
    48  	  Choose **Start > Task Manager** and navigate to the **Performance** tab.
    49  	  Under **CPU** you should see the following:
    50  
    51        ![Release page](images/virtualization.png)
    52  
    53      If virtualization is not enabled on your system, follow the manufacturer's instructions for enabling it.
    54  
    55      #### For Windows 7
    56  
    57  	  Run the <a
    58  	  href="http://www.microsoft.com/en-us/download/details.aspx?id=592"
    59  	  target="_blank"> Microsoft® Hardware-Assisted Virtualization Detection
    60  	  Tool</a> and follow the on-screen instructions.
    61  
    62  
    63  > **Note**: If you have Docker hosts running and you don't wish to do a Docker Toolbox
    64  installation, you can install the `docker.exe` using the *unofficial* Windows package
    65  manager Chocolately. For information on how to do this, see [Docker package on
    66  Chocolatey](http://chocolatey.org/packages/docker).
    67  
    68  ### Learn the key concepts before installing
    69  
    70  In a Docker installation on Linux, your machine is both the localhost and the
    71  Docker host. In networking, localhost means your computer. The Docker host is
    72  the machine on which the containers run.
    73  
    74  On a typical Linux installation, the Docker client, the Docker daemon, and any
    75  containers run directly on your localhost. This means you can address ports on a
    76  Docker container using standard localhost addressing such as `localhost:8000` or
    77  `0.0.0.0:8376`.
    78  
    79  ![Linux Architecture Diagram](images/linux_docker_host.svg)
    80  
    81  In an Windows installation, the `docker` daemon is running inside a Linux virtual
    82  machine. You use the Windows Docker client to talk to the Docker host VM. Your
    83  Docker containers run inside this host.
    84  
    85  ![Windows Architecture Diagram](images/win_docker_host.svg)
    86  
    87  In Windows, the Docker host address is the address of the Linux VM. When you
    88  start the VM with `docker-machine` it is assigned an IP address. When you start
    89  a container, the ports on a container map to ports on the VM. To see this in
    90  practice, work through the exercises on this page.
    91  
    92  
    93  ### Installation
    94  
    95  If you have VirtualBox running, you must shut it down before running the
    96  installer.
    97  
    98  1. Go to the [Docker Toolbox](https://www.docker.com/toolbox) page.
    99  
   100  2. Click the installer link to download.
   101  
   102  3. Install Docker Toolbox by double-clicking the installer.
   103  
   104      The installer launches the "Setup - Docker Toolbox" dialog.
   105  
   106      ![Install Docker Toolbox](images/win-welcome.png)
   107  
   108  4. Press "Next" to install the toolbox.
   109  
   110      The installer presents you with options to customize the standard
   111      installation. By default, the standard Docker Toolbox installation:
   112  
   113      * installs executables for the Docker tools in `C:\Program Files\Docker Toolbox`
   114      * install VirtualBox; or updates any existing installation
   115      * adds a Docker Inc. folder to your program shortcuts
   116      * updates your `PATH` environment variable
   117      * adds desktop icons for the Docker Quickstart Terminal and Kitematic
   118  
   119      This installation assumes the defaults are acceptable.
   120  
   121  5. Press "Next" until you reach the "Ready to Install" page.
   122  
   123       The system prompts you for your password.
   124  
   125       ![Install](images/win-page-6.png)
   126  
   127  6. Press "Install"  to continue with the installation.
   128  
   129       When it completes, the installer provides you with some information you can
   130       use to complete some common tasks.
   131  
   132       ![All finished](images/windows-finish.png)
   133  
   134  7. Press "Finish" to exit.
   135  
   136  ## Running a Docker Container
   137  
   138  To run a Docker container, you:
   139  
   140  * create a new (or start an existing) Docker virtual machine
   141  * switch your environment to your new VM
   142  * use the `docker` client to create, load, and manage containers
   143  
   144  Once you create a machine, you can reuse it as often as you like. Like any
   145  VirtualBox VM, it maintains its configuration between uses.
   146  
   147  There are several ways to use the installed tools, from the Docker Quickstart Terminal or
   148  [from your shell](#from-your-shell).
   149  
   150  ### Using the Docker Quickstart Terminal
   151  
   152  1. Find the Docker Quickstart Terminal icon on your Desktop and double-click to launch it.
   153  
   154      The application:
   155  
   156      * opens a terminal window
   157      * creates a `default` VM if it doesn't exist, and starts the VM after
   158      * points the terminal environment to this VM
   159  
   160      Once the launch completes, you can run `docker` commands.
   161  
   162  3. Verify your setup succeeded by running the `hello-world` container.
   163  
   164          $ docker run hello-world
   165          Unable to find image 'hello-world:latest' locally
   166          511136ea3c5a: Pull complete
   167          31cbccb51277: Pull complete
   168          e45a5af57b00: Pull complete
   169          hello-world:latest: The image you are pulling has been verified.
   170          Important: image verification is a tech preview feature and should not be
   171          relied on to provide security.
   172          Status: Downloaded newer image for hello-world:latest
   173          Hello from Docker.
   174          This message shows that your installation appears to be working correctly.
   175  
   176          To generate this message, Docker took the following steps:
   177          1. The Docker client contacted the Docker daemon.
   178          2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
   179             (Assuming it was not already locally available.)
   180          3. The Docker daemon created a new container from that image which runs the
   181             executable that produces the output you are currently reading.
   182          4. The Docker daemon streamed that output to the Docker client, which sent it
   183             to your terminal.
   184  
   185          To try something more ambitious, you can run an Ubuntu container with:
   186          $ docker run -it ubuntu bash
   187  
   188          For more examples and ideas, visit:
   189          http://docs.docker.com/userguide/
   190  
   191  
   192  ### Using Docker from Windows Command Prompt (cmd.exe)
   193  
   194  1. Launch a Windows Command Prompt (cmd.exe).
   195  
   196      The `docker-machine` command requires `ssh.exe` in your `PATH` environment
   197      variable. This `.exe` is in the MsysGit `bin` folder.
   198  
   199  2. Add this to the `%PATH%` environment variable by running:
   200  
   201          set PATH=%PATH%;"c:\Program Files (x86)\Git\bin"
   202  
   203  3. Create a new Docker VM.
   204  
   205          docker-machine create --driver virtualbox my-default
   206          Creating VirtualBox VM...
   207          Creating SSH key...
   208          Starting VirtualBox VM...
   209          Starting VM...
   210          To see how to connect Docker to this machine, run: docker-machine env my-default
   211  
   212      The command also creates a machine configuration in the
   213      `C:\USERS\USERNAME\.docker\machine\machines` directory. You only need to run the `create`
   214      command once. Then, you can use `docker-machine` to start, stop, query, and
   215      otherwise manage the VM from the command line.
   216  
   217  4. List your available machines.
   218  
   219          C:\Users\mary> docker-machine ls
   220          NAME                ACTIVE   DRIVER       STATE     URL                         SWARM
   221          my-default        *        virtualbox   Running   tcp://192.168.99.101:2376
   222  
   223      If you have previously installed the deprecated Boot2Docker application or
   224      run the Docker Quickstart Terminal, you may have a `dev` VM as well.
   225  
   226  5. Get the environment commands for your new VM.
   227  
   228          C:\Users\mary> docker-machine env --shell cmd my-default
   229  
   230  6. Connect your shell to the `my-default` machine.
   231  
   232          C:\Users\mary> eval "$(docker-machine env my-default)"
   233  
   234  7. Run the `hello-world` container to verify your setup.
   235  
   236          C:\Users\mary> docker run hello-world
   237  
   238  ### Using Docker from PowerShell
   239  
   240  1. Launch a Windows PowerShell window.
   241  
   242  2. Add `ssh.exe` to your PATH:
   243  
   244          PS C:\Users\mary> $Env:Path = "${Env:Path};c:\Program Files (x86)\Git\bin"
   245  
   246  3. Create a new Docker VM.
   247  
   248          PS C:\Users\mary> docker-machine create --driver virtualbox my-default
   249  
   250  4. List your available machines.
   251  
   252          C:\Users\mary> docker-machine ls
   253          NAME                ACTIVE   DRIVER       STATE     URL                         SWARM
   254          my-default        *        virtualbox   Running   tcp://192.168.99.101:2376
   255  
   256  5. Get the environment commands for your new VM.
   257  
   258          C:\Users\mary> docker-machine env --shell powershell my-default
   259  
   260  6. Connect your shell to the `my-default` machine.
   261  
   262          C:\Users\mary> eval "$(docker-machine env my-default)"
   263  
   264  7. Run the `hello-world` container to verify your setup.
   265  
   266          C:\Users\mary> docker run hello-world
   267  
   268  
   269  ## Learn about your Toolbox installation
   270  
   271  Toolbox installs the Docker Engine binary in the `C:\Program Files\Docker
   272  Toolbox` directory. When you use the Docker Quickstart Terminal or create a
   273  `default` VM manually, Docker Machine updates the
   274  `C:\USERS\USERNAME\.docker\machine\machines\default` folder to your
   275  system. This folder contains the configuration for the VM.
   276  
   277  You can create multiple VMs on your system with Docker Machine. Therefore, you
   278  may end up with multiple VM folders if you have created more than one VM. To
   279  remove a VM, use the `docker-machine rm <machine-name>` command.
   280  
   281  ## Migrate from Boot2Docker
   282  
   283  If you were using Boot2Docker previously, you have a pre-existing Docker
   284  `boot2docker-vm` VM on your local system.  To allow Docker Machine to manage
   285  this older VM, you can migrate it.
   286  
   287  1. Open a terminal or the Docker CLI on your system.
   288  
   289  2. Type the following command.
   290  
   291          $ docker-machine create -d virtualbox --virtualbox-import-boot2docker-vm boot2docker-vm docker-vm
   292  
   293  3. Use the `docker-machine` command to interact with the migrated VM.
   294  
   295  The `docker-machine` subcommands are slightly different than the `boot2docker`
   296  subcommands. The table below lists the equivalent `docker-machine` subcommand
   297  and what it does:
   298  
   299  |  `boot2docker` | `docker-machine` | `docker-machine` description                             |
   300  |----------------|------------------|----------------------------------------------------------|
   301  | init           | create           | Creates a new docker host.                               |
   302  | up             | start            | Starts a stopped machine.                                |
   303  | ssh            | ssh              | Runs a command or interactive ssh session on the machine.|
   304  | save           | -                | Not applicable.                                          |
   305  | down           | stop             | Stops a running machine.                                 |
   306  | poweroff       | stop             | Stops a running machine.                                 |
   307  | reset          | restart          | Restarts a running machine.                              |
   308  | config         | inspect          | Prints machine configuration details.                    |
   309  | status         | ls               | Lists all machines and their status.                     |
   310  | info           | inspect          | Displays a machine's details.                            |
   311  | ip             | ip               | Displays the machine's ip address.                       |
   312  | shellinit      | env              | Displays shell commands needed to configure your shell to interact with a machine |
   313  | delete         | rm               | Removes a machine.                                       |
   314  | download       | -                | Not applicable.                                          |
   315  | upgrade        | upgrade          | Upgrades a machine's Docker client to the latest stable release. |
   316  
   317  
   318  ## Upgrade Docker Toolbox
   319  
   320  To upgrade Docker Toolbox, download an re-run [the Docker Toolbox
   321  installer](https://www.docker.com/toolbox).
   322  
   323  ## Container port redirection
   324  
   325  If you are curious, the username for the Docker default VM is `docker` and the
   326  password is `tcuser`. The latest version of `docker-machine` sets up a host only
   327  network adaptor which provides access to the container's ports.
   328  
   329  If you run a container with a published port:
   330  
   331      $ docker run --rm -i -t -p 80:80 nginx
   332  
   333  Then you should be able to access that nginx server using the IP address
   334  reported to you using:
   335  
   336      $ docker-machine ip
   337  
   338  Typically, the IP is 192.168.59.103, but it could get changed by VirtualBox's
   339  DHCP implementation.
   340  
   341  ## Login with PUTTY instead of using the CMD
   342  
   343  Docker Machine generates and uses the public/private key pair in your
   344  `%USERPROFILE%\.ssh` directory so to log in you need to use the private key from
   345  this same directory. The private key needs to be converted into the format PuTTY
   346  uses. You can do this with
   347  [puttygen](http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html):
   348  
   349  1. Open `puttygen.exe` and load ("File"->"Load" menu) the private key from
   350  
   351          %USERPROFILE%\.docker\machine\machines\<name_of_your_machine>
   352  
   353  2. Click "Save Private Key".
   354  
   355  3.  Use the saved file to login with PuTTY using `docker@127.0.0.1:2022`.
   356  
   357  ## Uninstallation
   358  
   359  You can uninstall Docker Toolbox using Window's standard process for removing
   360  programs. This process does not remove the `docker-install.exe` file. You must
   361  delete that file yourself.
   362  
   363  ## Learn more
   364  
   365  You can continue with the [Docker User Guide](../userguide). If you are
   366  interested in using the Kitematic GUI, see the [Kitematic user
   367  guide](https://docs.docker.com/kitematic/userguide/).