2015-09-17 21 views
5

Ich möchte Docker auf v1.8 auf Amazon Linux aktualisieren.Upgrade von Docker auf Amazon Linux AMI

Zum Zeitpunkt des Schreibens ihrer internen Yum-Paket-Repository hat: Docker version 1.7.1, build 786b29d/1.7.1.

Dinge, die ich habe versucht, bereits

manuell von der Installation Docker project's repo

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

+0

Denken Sie Pech hier. Amazon Linux wurde von CentOS 5 gespalten und hat sich in den letzten Jahren stark verändert. Und einige Centos7-Pakete sind möglicherweise nicht kompatibel. So kann man verschiedene Linux-Distributionen ausprobieren (Centos7, Ubuntu, Fedora) oder einfach warten, bis Amazon seine Updates aktualisiert. – Vor

+0

Ich gebe jetzt die Installation von Docker aus der Quelle. Wenn das fehlschlägt, öffne ich das Amazon 'docker' yum Paket und zwicke es. – Hzmy

Antwort

3

Ich landete das Amazon Linux docker Paket installieren und dann das Überschreiben des /usr/bin/docker binär mit der 1.8.2 Version binär aus : https://docs.docker.com/installation/binaries/.

Nicht gerade elegant - aber alle Abhängigkeiten sind die gleichen, und da mein AMI unveränderlich ist, wird das Paket nicht über dem aktuellen Bild aktualisiert.

4

Wenn Sie den EC2 Container-Dienst verwenden, wird(2015.09.b) docker-1.7.1 zum Zeitpunkt des Schreibens ausgeführt. A post in the AWS forums sagt "[AWS] testet 1,9 RC und planen, es in diesem Monat zu liefern."

auf Hzmy Antwort zu erweitern hier ist, wie Docker zu 1.9.0 in einer SSH-Sitzung zu aktualisieren:

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 

Wenn Sie Cloudformation-Vorlagen verwenden, hier ist ein Befehl, den Sie in Ihrem AWS::Cloudformation::Init fallen können:

... 
"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" 
       ] 
      ] 
     } 
    } 
    ... 
} 
... 

Vielleicht nicht die sauberste, aber es scheint für mich zu arbeiten.

+0

yup! Solange Docker mit seinen Init-Skripten nichts Verrücktes ändert - es sollte alles gut sein! – Hzmy