2013-03-25 22:52:52 -04:00
Amazon EC2
==========
2013-03-26 19:29:21 -04:00
Please note this is a community contributed installation path. The only 'official' installation is using the :ref: `ubuntu_linux` installation path. This version
may be out of date because it depends on some binaries to be updated and published
2013-03-25 22:52:52 -04:00
Installation
------------
2013-03-26 19:29:21 -04:00
Docker can now be installed on Amazon EC2 with a single vagrant command. 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 and puppet manifests.
::
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.
::
2013-03-25 22:52:52 -04:00
2013-03-26 19:29:21 -04:00
export AWS_ACCESS_KEY_ID=xxx
export AWS_SECRET_ACCESS_KEY=xxx
export AWS_KEYPAIR_NAME=xxx
export AWS_SSH_PRIVKEY=xxx
2013-03-25 22:52:52 -04:00
2013-03-26 19:29:21 -04:00
The environment variables are:
2013-03-25 22:52:52 -04:00
2013-03-26 19:29:21 -04:00
* `` 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 ``
2013-03-25 22:52:52 -04:00
2013-03-26 19:29:21 -04:00
You can check if they are set correctly by doing something like
2013-03-25 22:52:52 -04:00
2013-03-26 19:29:21 -04:00
::
2013-03-25 22:52:52 -04:00
2013-03-26 19:29:21 -04:00
echo $AWS_ACCESS_KEY_ID
2013-03-25 22:52:52 -04:00
2013-03-26 19:29:21 -04:00
6. Do the magic!
2013-03-25 22:52:52 -04:00
2013-03-26 19:29:21 -04:00
::
2013-03-25 22:52:52 -04:00
2013-03-26 19:29:21 -04:00
vagrant up --provider=aws
2013-03-25 22:52:52 -04:00
2013-03-26 19:29:21 -04:00
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.
2013-03-25 22:52:52 -04:00
2013-03-26 19:29:21 -04:00
If you have an advanced AWS setup, you might want to have a look at the https://github.com/mitchellh/vagrant-aws
2013-03-25 22:52:52 -04:00
2013-03-26 19:29:21 -04:00
7. Connect to your machine
2013-03-25 22:52:52 -04:00
2013-03-26 19:29:21 -04:00
.. code-block :: bash
2013-03-25 22:52:52 -04:00
2013-03-26 19:29:21 -04:00
vagrant ssh
2013-03-25 22:52:52 -04:00
2013-03-26 19:29:21 -04:00
8. Your first command
2013-03-25 22:52:52 -04:00
2013-03-26 19:29:21 -04:00
Now you are in the VM, run docker
2013-03-25 22:52:52 -04:00
2013-03-26 19:29:21 -04:00
.. code-block :: bash
2013-03-25 22:52:52 -04:00
2013-03-26 19:29:21 -04:00
docker
2013-03-25 22:52:52 -04:00
Continue with the :ref: `hello_world` example.