Wie kann Docker derzeit auf einer AWS EC2-Instanz installiert werden, auf der AMI ausgeführt wird? Es gab eine Ankündigung von Docker Enterprise Edition und jetzt möchte ich wissen , ob sich etwas geändert hat. Bisher yum install docker
habe ich einen Docker verwendet und erhalte ihn ab 1.12.6, build 7392c3b/1.12.6
sofort (03.03.2017). Das Docker-Repository auf GitHub teilt mir jedoch mit, dass es bereits neuere Versionen gibt.
Ich erinnere mich an die offizielle Docker (Paket) Repository ein Paket mit dem Namen mit docker-engine
Ersatz docker
vor einiger Zeit , und jetzt scheinen sie das Paket aufzuspalten in docker-ce
und docker-ee
, wo zB „Docker Community Edition (CE Docker) nicht auf Red Hat Enterprise Linux unterstützt.“ [ Quelle ]
Ist es also richtig oder ist es immer noch richtig, obige Anweisungen zu verwenden, um die neueste stabile Docker-Version auf EC2-Instanzen zu erhalten, auf denen AMI ausgeführt wird?
Antworten:
Um Docker auf dem AWS AMI zum Laufen zu bringen, befolgen Sie die folgenden Schritte (alle setzen voraus, dass Sie für die EC2-Instanz ein SSH durchgeführt haben).
Aktualisieren Sie die Pakete auf Ihrer Instanz
[ec2-user ~]$ sudo yum update -y
Installieren Sie Docker
[ec2-user ~]$ sudo yum install docker -y
Starten Sie den Docker-Dienst
[ec2-user ~]$ sudo service docker start
Fügen Sie den ec2-Benutzer der Docker-Gruppe hinzu, damit Sie Docker-Befehle ausführen können, ohne sudo zu verwenden.
[ec2-user ~]$ sudo usermod -a -G docker ec2-user
Sie sollten dann in der Lage sein, alle Docker-Befehle auszuführen, ohne dies zu erfordern
sudo
. Nachdem ich den 4. Befehl ausgeführt hatte, musste ich mich abmelden und wieder anmelden, damit die Änderung wirksam wurde.quelle
Der schwierigste Teil, um all dies herauszufinden, war die Container-Selinux-Anforderung. Suchen Sie einfach die neueste Version unter http://mirror.centos.org/centos/7/extras/x86_64/Packages/ und installieren Sie diese zuerst. Darüber hinaus verfügen EC2-Instanzen möglicherweise nicht über einen geeigneten Entropiegenerator und
haveged
müssen möglicherweise installiert werden.Der Rest stammt von https://docs.docker.com/install/linux/docker-ce/centos/, wobei Haveged und Firewalld hinzugefügt wurden. All dies muss als root so
sudo
passend gemacht werden.Aktivieren Sie SELinux, indem Sie ändern
/etc/sysconfig/selinux
, um zu seinStarten Sie dann Ihre Instanz durch Ausgabe neu
shutdown -r now
Die Ausführung
sudo docker version
sollte ab dem Zeitpunkt dieser Buchung erfolgen ...quelle
Per https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html
Den Verlauf finden Sie unter https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-ami-versions.html
quelle
Zusätzlich zu meiner vorherigen Antwort. Wenn Sie Terraform verwenden, habe ich auch ein Terraform-Modul erstellt, mit dem Sie einen Docker-Schwarm erstellen können
https://registry.terraform.io/modules/trajano/swarm-aws/docker
Der Unterschied zwischen dem Ansatz, den ich zuvor gemacht habe, und dem Ansatz, den ich derzeit mit dem terraform-Modul mache, besteht darin, die von AWS bereitgestellten Docker-Pakete zu verwenden. Dies beinhaltet nicht die vollständige Docker-Erstellung und was nicht, aber Sie benötigen diese Pakete normalerweise nicht auf einem Server.
Da ich die von Amazon bereitgestellte Version verwende, handelt es sich nicht mehr um die neueste Version 18.09, sondern um die Version 18.06. Die Einrichtung ist jedoch einfacher und ich muss mich nicht mit Container-Selinux auseinandersetzen.
Die einzige externe Abhängigkeit, die ich verwende, ist EPEL, um in Schwierigkeiten zu geraten, da Sie für einige Anwendungen immer noch eine gute Zufallsquelle benötigen.
Ich habe mich auch auf die AWS-Sicherheitsgruppen verlassen, anstatt Firewalld explizit einzurichten, und die SELinux-Einstellung verwendet, die im AMI-Image standardmäßig festgelegt ist.
quelle