Upgrading Docker on Amazon Linux AMI

I want to upgrade Docker to v1.8 on Amazon Linux.

At the time of writing their internal yum package repository has: Docker version 1.7.1, build 786b29d/1.7.1.

  • How to Copy the wp-contents/uploads in Docker?
  • create jenkins image with docker
  • Boot2docker proxy on windows
  • Slow django model instance creation with Docker
  • Multiple Nginx configuration in docker
  • Ubuntu 14.04 volume disk full due to docker data
  • Things I have already tried

    Manually installing from the Docker project’s repo

    Error: Package: docker-engine-1.8.2-1.el7.centos.x86_64 (dockerrepo)
    Requires: systemd-units

  • Add supervisor in php:7-fpm image
  • Install SCP in Docker container
  • Serving Rails' precompiled assets using nginx in Docker
  • Openshift Origin run-app against insecure registry yields stuck pod with “Error while pulling image”
  • Setting Rails Environment for Apache by Environment Variable
  • Add Domain name to Docker Cloud node
  • 2 Solutions collect form web for “Upgrading Docker on Amazon Linux AMI”

    If you’re using the EC2 Container service, the AWS ECS-optimized AMI (2015.09.b) is running docker-1.7.1 as of this writing. A post in the AWS forums states “[AWS is] testing 1.9 RC and plan to deliver it this month.”

    To expand on Hzmy’s answer, here’s how to upgrade Docker to 1.9.0 in an SSH session:

    service docker stop
    cp /usr/bin/docker /usr/bin/docker.old
    curl -o /usr/bin/docker https://get.docker.com/builds/Linux/x86_64/docker-1.9.0
    service docker start
    

    If you’re using CloudFormation templates, here’s a command you can drop in your AWS::Cloudformation::Init:

    ...
    "commands": {
        ...,
        "03_upgrade_docker_for_log_driver_support": {
            "command": {
                "Fn::Join": [
                    "",
                    [
                        "#!/bin/bash -xe\n",
                        "service docker stop\n",
                        "cp /usr/bin/docker /usr/bin/docker.old\n",
                        "curl -o /usr/bin/docker https://get.docker.com/builds/Linux/x86_64/docker-1.8.3\n",
                        "service docker start\n"
                    ]
                ]
            }
        }
        ...
    }
    ...
    

    Maybe not the cleanest, but it seems to work for me.

    I ended up installing the Amazon Linux docker package and then overwriting the /usr/bin/docker binary with the 1.8.2 version binary from: https://docs.docker.com/installation/binaries/.

    Not exactly elegant – but all of the dependencies are the same, and seeing as my AMI is immutable the package won’t be upgraded on top of the current image.

    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.