Merge pull request #1851 from metalivedev/1601-ec2install
Fix #1601 and #1845
|
@ -1,24 +1,77 @@
|
||||||
:title: Installation on Amazon EC2
|
:title: Installation on Amazon EC2
|
||||||
:description: Docker installation on Amazon EC2 with a single vagrant command. Vagrant 1.1 or higher is required.
|
:description: Docker installation on Amazon EC2
|
||||||
:keywords: amazon ec2, virtualization, cloud, docker, documentation, installation
|
:keywords: amazon ec2, virtualization, cloud, docker, documentation, installation
|
||||||
|
|
||||||
Using Vagrant (Amazon EC2)
|
Amazon EC2
|
||||||
==========================
|
==========
|
||||||
|
|
||||||
This page explains how to setup and run an Amazon EC2 instance from
|
|
||||||
your local machine. **Vagrant is not necessary to run Docker on
|
|
||||||
EC2.** You can follow the :ref:`ubuntu_linux` instructions installing
|
|
||||||
Docker on any EC2 instance running Ubuntu.
|
|
||||||
|
|
||||||
Installation
|
|
||||||
------------
|
|
||||||
|
|
||||||
.. include:: install_header.inc
|
.. include:: install_header.inc
|
||||||
|
|
||||||
|
There are several ways to install Docker on AWS EC2:
|
||||||
|
|
||||||
|
* :ref:`amazonquickstart` or
|
||||||
|
* :ref:`amazonstandard` or
|
||||||
|
* :ref:`amazonvagrant`
|
||||||
|
|
||||||
|
**You'll need an** `AWS account <http://aws.amazon.com/>`_ **first, of course.**
|
||||||
|
|
||||||
|
.. _amazonquickstart:
|
||||||
|
|
||||||
|
Amazon QuickStart
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
1. **Choose an image:**
|
||||||
|
|
||||||
|
* Open http://cloud-images.ubuntu.com/locator/ec2/
|
||||||
|
* Enter ``amd64 precise`` in the search field (it will search as you
|
||||||
|
type)
|
||||||
|
* Pick an image by clicking on the image name. *An EBS-enabled
|
||||||
|
image will let you t1.micro instance.* Clicking on the image name
|
||||||
|
will take you to your AWS Console.
|
||||||
|
|
||||||
|
2. **Tell CloudInit to install Docker:**
|
||||||
|
|
||||||
|
* Enter ``#include https://get.docker.io`` into the instance *User
|
||||||
|
Data*. `CloudInit <https://help.ubuntu.com/community/CloudInit>`_
|
||||||
|
is part of the Ubuntu image you chose and it bootstraps from this
|
||||||
|
*User Data*.
|
||||||
|
|
||||||
|
3. After a few more standard choices where defaults are probably ok, your
|
||||||
|
AWS Ubuntu instance with Docker should be running!
|
||||||
|
|
||||||
|
**If this is your first AWS instance, you may need to set up your
|
||||||
|
Security Group to allow SSH.** By default all incoming ports to your
|
||||||
|
new instance will be blocked by the AWS Security Group, so you might
|
||||||
|
just get timeouts when you try to connect.
|
||||||
|
|
||||||
|
Installing with ``get.docker.io`` (as above) will create a service
|
||||||
|
named ``dockerd``. You may want to set up a :ref:`docker group
|
||||||
|
<dockergroup>` and add the *ubuntu* user to it so that you don't have
|
||||||
|
to use ``sudo`` for every Docker command.
|
||||||
|
|
||||||
|
Once you've got Docker installed, you're ready to try it out -- head
|
||||||
|
on over to the :doc:`../use/basics` or :doc:`../examples/index` section.
|
||||||
|
|
||||||
|
.. _amazonstandard:
|
||||||
|
|
||||||
|
Standard Ubuntu Installation
|
||||||
|
----------------------------
|
||||||
|
|
||||||
|
If you want a more hands-on installation, then you can follow the
|
||||||
|
:ref:`ubuntu_linux` instructions installing Docker on any EC2 instance
|
||||||
|
running Ubuntu. Just follow Step 1 from :ref:`amazonquickstart` to
|
||||||
|
pick an image (or use one of your own) and skip the step with the
|
||||||
|
*User Data*. Then continue with the :ref:`ubuntu_linux` instructions.
|
||||||
|
|
||||||
|
.. _amazonvagrant:
|
||||||
|
|
||||||
|
Use Vagrant
|
||||||
|
-----------
|
||||||
|
|
||||||
.. include:: install_unofficial.inc
|
.. include:: install_unofficial.inc
|
||||||
|
|
||||||
Docker can now be installed on Amazon EC2 with a single vagrant
|
And finally, if you prefer to work through Vagrant, you can install
|
||||||
command. Vagrant 1.1 or higher is required.
|
Docker that way too. Vagrant 1.1 or higher is required.
|
||||||
|
|
||||||
1. Install vagrant from http://www.vagrantup.com/ (or use your package manager)
|
1. Install vagrant from http://www.vagrantup.com/ (or use your package manager)
|
||||||
2. Install the vagrant aws plugin
|
2. Install the vagrant aws plugin
|
||||||
|
@ -37,16 +90,17 @@ command. Vagrant 1.1 or higher is required.
|
||||||
|
|
||||||
4. Check your AWS environment.
|
4. Check your AWS environment.
|
||||||
|
|
||||||
Create a keypair specifically for EC2, give it a name and save it to your disk. *I usually store these in my ~/.ssh/ folder*.
|
Create a keypair specifically for EC2, give it a name and save it
|
||||||
|
to your disk. *I usually store these in my ~/.ssh/ folder*.
|
||||||
Check that your default security group has an inbound rule to accept SSH (port 22) connections.
|
|
||||||
|
|
||||||
|
|
||||||
|
Check that your default security group has an inbound rule to
|
||||||
|
accept SSH (port 22) connections.
|
||||||
|
|
||||||
5. Inform Vagrant of your settings
|
5. Inform Vagrant of your settings
|
||||||
|
|
||||||
Vagrant will read your access credentials from your environment, so we need to set them there first. Make sure
|
Vagrant will read your access credentials from your environment, so
|
||||||
you have everything on amazon aws setup so you can (manually) deploy a new image to EC2.
|
we need to set them there first. Make sure you have everything on
|
||||||
|
amazon aws setup so you can (manually) deploy a new image to EC2.
|
||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
|
@ -60,7 +114,8 @@ command. Vagrant 1.1 or higher is required.
|
||||||
* ``AWS_ACCESS_KEY_ID`` - The API key used to make requests to AWS
|
* ``AWS_ACCESS_KEY_ID`` - The API key used to make requests to AWS
|
||||||
* ``AWS_SECRET_ACCESS_KEY`` - The secret key to make AWS API requests
|
* ``AWS_SECRET_ACCESS_KEY`` - The secret key to make AWS API requests
|
||||||
* ``AWS_KEYPAIR_NAME`` - The name of the keypair used for this EC2 instance
|
* ``AWS_KEYPAIR_NAME`` - The name of the keypair used for this EC2 instance
|
||||||
* ``AWS_SSH_PRIVKEY`` - The path to the private key for the named keypair, for example ``~/.ssh/docker.pem``
|
* ``AWS_SSH_PRIVKEY`` - The path to the private key for the named
|
||||||
|
keypair, for example ``~/.ssh/docker.pem``
|
||||||
|
|
||||||
You can check if they are set correctly by doing something like
|
You can check if they are set correctly by doing something like
|
||||||
|
|
||||||
|
@ -75,10 +130,12 @@ command. Vagrant 1.1 or higher is required.
|
||||||
vagrant up --provider=aws
|
vagrant up --provider=aws
|
||||||
|
|
||||||
|
|
||||||
If it stalls indefinitely on ``[default] Waiting for SSH to become available...``, Double check your default security
|
If it stalls indefinitely on ``[default] Waiting for SSH to become
|
||||||
zone on AWS includes rights to SSH (port 22) to your container.
|
available...``, Double check your default security zone on AWS
|
||||||
|
includes rights to SSH (port 22) to your container.
|
||||||
|
|
||||||
If you have an advanced AWS setup, you might want to have a look at https://github.com/mitchellh/vagrant-aws
|
If you have an advanced AWS setup, you might want to have a look at
|
||||||
|
https://github.com/mitchellh/vagrant-aws
|
||||||
|
|
||||||
7. Connect to your machine
|
7. Connect to your machine
|
||||||
|
|
||||||
|
|
Before Width: | Height: | Size: 117 KiB After Width: | Height: | Size: 118 KiB |
Before Width: | Height: | Size: 74 KiB After Width: | Height: | Size: 76 KiB |
Before Width: | Height: | Size: 90 KiB After Width: | Height: | Size: 92 KiB |
Before Width: | Height: | Size: 75 KiB After Width: | Height: | Size: 76 KiB |
Before Width: | Height: | Size: 110 KiB After Width: | Height: | Size: 125 KiB |
Before Width: | Height: | Size: 69 KiB After Width: | Height: | Size: 71 KiB |
Before Width: | Height: | Size: 272 KiB After Width: | Height: | Size: 275 KiB |