Quelle est la façon actuelle d'installer Docker sur une instance AWS EC2 exécutant l'AMI? Il y a eu une annonce de Docker Enterprise Edition et maintenant je veux savoir si quelque chose a changé. Jusqu'à présent, j'utilisais yum install docker
et j'obtiens un Docker versionné en 1.12.6, build 7392c3b/1.12.6
ce moment (3/3/2017). Cependant, le référentiel Docker sur GitHub me dit qu'il existe déjà des versions plus récentes.
Je me souviens du dépôt Docker (package) officiel ayant un package nommé docker-engine
remplaçant il y a docker
quelque temps et maintenant ils semblent diviser le package en docker-ce
et docker-ee
, par exemple, "Docker Community Edition (Docker CE) n'est pas pris en charge sur Red Hat Enterprise Linux." [ Source ]
Est-il donc ou sera-t-il toujours correct d'utiliser ce qui précède pour obtenir la dernière version stable de Docker sur les instances EC2 exécutant l'AMI ou dois-je extraire le package ailleurs (et si oui, lequel, CE ou EE)?
Réponses:
Pour que Docker s'exécute sur l'AWS AMI, vous devez suivre les étapes ci-dessous (elles supposent toutes que vous avez accédé à l'instance EC2).
Mettez à jour les packages sur votre instance
[ec2-user ~]$ sudo yum update -y
Installer Docker
[ec2-user ~]$ sudo yum install docker -y
Démarrez le service Docker
[ec2-user ~]$ sudo service docker start
Ajoutez l'utilisateur ec2 au groupe docker pour pouvoir exécuter des commandes Docker sans utiliser sudo.
[ec2-user ~]$ sudo usermod -a -G docker ec2-user
Vous devriez alors pouvoir exécuter toutes les commandes du docker sans avoir besoin
sudo
. Après avoir exécuté la 4e commande, je devais me déconnecter et me reconnecter pour que la modification prenne effet.la source
La partie la plus difficile à comprendre tout cela était l'exigence de conteneur-selinux. Trouvez la dernière version sur http://mirror.centos.org/centos/7/extras/x86_64/Packages/ et installez-la en premier. De plus, les instances EC2 peuvent ne pas avoir de générateur d'entropie approprié et
haveged
doivent donc être installées.Le reste est extrait de https://docs.docker.com/install/linux/docker-ce/centos/ avec l'ajout de hasged et firewalld. Tout cela doit être fait en tant que root de manière
sudo
appropriée.Activez SELinux en modifiant
/etc/sysconfig/selinux
pour êtreRedémarrez ensuite votre instance en émettant
shutdown -r now
L'exécution
sudo docker version
devrait rapporter au moment de cette publication ...la source
Par https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-optimized_AMI.html
Vous pouvez voir l'historique à https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-ami-versions.html
la source
En plus de ma réponse précédente. Si vous utilisez Terraform, j'ai également créé un module Terraform qui peut être utilisé pour créer un Docker Swarm
https://registry.terraform.io/modules/trajano/swarm-aws/docker
La différence entre l'approche que j'avais faite précédemment et l'approche que je fais actuellement avec le module terraform est d'utiliser les packages Docker fournis par AWS. Cela n'inclut pas le docker-compose complet et ce qui ne l'est pas, mais vous n'avez pas besoin de ces packages normalement sur un serveur.
Parce que j'utilise celui qu'Amazon avait fourni, ce n'est plus la dernière version 18.09 mais la version 18.06. Cependant, la configuration est plus simple et je n'ai pas à jouer au rattrapage de container-selinux.
La seule dépendance externe que j'utilise est EPEL pour se faufiler car vous avez toujours besoin d'une bonne source aléatoire pour certaines applications.
Je me suis également appuyé sur les groupes de sécurité AWS plutôt que sur la configuration explicite de firewalld et j'ai utilisé le paramètre SELinux par défaut dans l'image AMI.
la source