123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184 |
- :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:**
- * Launch the `Create Instance Wizard
- <https://console.aws.amazon.com/ec2/v2/home?#LaunchInstanceWizard:>`_ menu
- on your AWS Console.
- * Click the ``Select`` button for a 64Bit Ubuntu image. For example: Ubuntu Server 12.04.3 LTS
- * For testing you can use the default (possibly free)
- ``t1.micro`` instance (more info on `pricing
- <http://aws.amazon.com/en/ec2/pricing/>`_).
- * Click the ``Next: Configure Instance Details`` button at the bottom right.
- 2. **Tell CloudInit to install Docker:**
- * When you're on the "Configure Instance Details" step, expand the "Advanced
- Details" section.
- * Under "User data", select "As text".
- * 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; it will bootstrap Docker by running the shell
- script located at this URL.
- 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.
- Note that where possible these variables are the same as those honored by
- the ec2 api tools.
- ::
- export AWS_ACCESS_KEY=xxx
- export AWS_SECRET_KEY=xxx
- export AWS_KEYPAIR_NAME=xxx
- export SSH_PRIVKEY_PATH=xxx
- export BOX_NAME=xxx
- export AWS_REGION=xxx
- export AWS_AMI=xxx
- export AWS_INSTANCE_TYPE=xxx
- The required environment variables are:
- * ``AWS_ACCESS_KEY`` - The API key used to make requests to AWS
- * ``AWS_SECRET_KEY`` - The secret key to make AWS API requests
- * ``AWS_KEYPAIR_NAME`` - The name of the keypair used for this EC2 instance
- * ``SSH_PRIVKEY_PATH`` - The path to the private key for the named
- keypair, for example ``~/.ssh/docker.pem``
- There are a number of optional environment variables:
- * ``BOX_NAME`` - The name of the vagrant box to use. Defaults to
- ``ubuntu``.
- * ``AWS_REGION`` - The aws region to spawn the vm in. Defaults to
- ``us-east-1``.
- * ``AWS_AMI`` - The aws AMI to start with as a base. This must be
- be an ubuntu 12.04 precise image. You must change this value if
- ``AWS_REGION`` is set to a value other than ``us-east-1``.
- This is because AMIs are region specific. Defaults to ``ami-69f5a900``.
- * ``AWS_INSTANCE_TYPE`` - The aws instance type. Defaults to ``t1.micro``.
- You can check if they are set correctly by doing something like
- ::
- echo $AWS_ACCESS_KEY
- 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
- `vagrant-aws <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.
|