Ich habe eine harte Zeit, mein Gehirn um die Möglichkeiten von Docker zu wickeln, also entschuldige meine Unwissenheit hier:
Kann ich ein Docker-Image eines von mir erstellten Datenbankservers verwenden und über einen bestimmten Mechanismus direkt auf einen neuen EC2-Server übertragen? Oder, müsste ich den EC2 Server erstellen, dann Docker auf dem Server installieren, dann das Image auf den Server ziehen, etc.
Ich bin auch vollkommen in Ordnung, wenn ich extra Code für irgendeinen Teil dieses Prozesses schreiben muss. Ich bin mir nur nicht sicher, ob es möglich ist.
Missverstehe ich die maximale Reichweite von Docker's Nützlichkeit?
Der einfachste Weg ist, wie Sie gesagt haben (EC2-Instanz erstellen, Docker installieren, Bild ziehen, Bild ausführen).
Wenn Sie den Overhead von LXC (der ohnehin extrem klein ist) loswerden wollen, gibt es mehrere Lösungen:
docker export
verwenden, um einen Tarball des rootfs des Containers zu generieren, diesen Tarball auf der EC2-Instanz zu entpacken und dort zu chroot; chroot
Laufzeit zu Docker hinzufügen, um genau das zu tun, aber auf automatisierte Weise (jeder docker run
wird einer Chroot zugeordnet); FROM
-Zeile einer EC2-AMI-Basis zuzuordnen und dann die Docker-Datei manuell (z. B. über cloudinit) anzuwenden. Es ist verlockend, ein natives Bild (mit der letzten Lösung) zu erhalten, aber es ist auch die am wenigsten zuverlässige Lösung, da es keine zuverlässige Zuordnung zwischen Docker-Basisbildern und EC2-Basisbildern gibt.
>Wenn alle Ihre Basen z.B. Ubuntu, du könntest ziemlich erfolgreich Dockerfiles in Cloudinit-Templates umwandeln; aber ich würde persönlich Option 1 oder 2 wählen.
Tags und Links amazon-web-services docker amazon-ec2 deployment