mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
155 lines
4.5 KiB
ReStructuredText
155 lines
4.5 KiB
ReStructuredText
:title: Installation on Amazon EC2
|
|
:description: Docker installation on Amazon EC2
|
|
:keywords: amazon ec2, virtualization, cloud, docker, documentation, installation
|
|
|
|
Amazon EC2
|
|
==========
|
|
|
|
.. 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 use a 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
|
|
``lxc-docker``. It will also set up a :ref:`docker group <dockergroup>` and you
|
|
may want to 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
|
|
|
|
And finally, if you prefer to work through Vagrant, you can install
|
|
Docker that way too. Vagrant 1.1 or higher is required.
|
|
|
|
1. Install vagrant from http://www.vagrantup.com/ (or use your package manager)
|
|
2. Install the vagrant aws plugin
|
|
|
|
::
|
|
|
|
vagrant plugin install vagrant-aws
|
|
|
|
|
|
3. Get the docker sources, this will give you the latest Vagrantfile.
|
|
|
|
::
|
|
|
|
git clone https://github.com/dotcloud/docker.git
|
|
|
|
|
|
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*.
|
|
|
|
Check that your default security group has an inbound rule to
|
|
accept SSH (port 22) connections.
|
|
|
|
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 you have everything on
|
|
amazon aws setup so you can (manually) deploy a new image to EC2.
|
|
|
|
::
|
|
|
|
export AWS_ACCESS_KEY_ID=xxx
|
|
export AWS_SECRET_ACCESS_KEY=xxx
|
|
export AWS_KEYPAIR_NAME=xxx
|
|
export AWS_SSH_PRIVKEY=xxx
|
|
|
|
The environment variables are:
|
|
|
|
* ``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_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``
|
|
|
|
You can check if they are set correctly by doing something like
|
|
|
|
::
|
|
|
|
echo $AWS_ACCESS_KEY_ID
|
|
|
|
6. Do the magic!
|
|
|
|
::
|
|
|
|
vagrant up --provider=aws
|
|
|
|
|
|
If it stalls indefinitely on ``[default] Waiting for SSH to become
|
|
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
|
|
|
|
7. Connect to your machine
|
|
|
|
.. code-block:: bash
|
|
|
|
vagrant ssh
|
|
|
|
8. Your first command
|
|
|
|
Now you are in the VM, run docker
|
|
|
|
.. code-block:: bash
|
|
|
|
sudo docker
|
|
|
|
|
|
Continue with the :ref:`hello_world` example.
|