Attention ceci est mon brouillon avant de faire une belle documentation sur Docker (il y a à boire et à manger).
A force de voir CoreOS de partout, je vais l’installer ! Autant prendre le meilleur … Voici un article : Les 7 raisons de prendre CoreOS pour Docker en anglais , . Le résumé de mes aventures dans le monde merveilleux de Docker : https://www.cyber-neurones.org/2016/05/docker-petit-resume-sur-les-commandes/ .
Phase n°1 : Le téléchargement : https://coreos.com
Attention ceci est mon brouillon avant de faire une belle documentation sur Docker (il y a à boire et à manger).
Quelques commandes :
Quelques serveurs :
Attention ceci est mon brouillon avant de faire une belle documentation sur Docker (il y a à boire et à manger).
Pour commencer, je vous rappelle ce très bon article sur Docker : http://www.journaldunet.com/solutions/cloud-computing/1146290-cloud-pourquoi-docker-peut-tout-changer/
Maintenant je vais faire un clone de mon Docker actuel afin de faire un second Docker identique. Pour cela je fais une copie avec VirtualBox. Attention il faut avoir 21 Go de disponible sur le disque dur.
Attention ceci est mon brouillon avant de faire une belle documentation sur Docker (il y a à boire et à manger).
Maintenant je vais faire un test avec GitHub : https://github.com . D’abord il faut créer un compte farias06 :
Ensuite on fait un projet, pour la part c’est hello_world :
Et maintenant il va falloir mettre les sources :
Attention ceci est mon brouillon avant de faire une belle documentation sur Docker (il y a à boire et à manger).
Maintenant il me faut faire un script d’arrêt des containers, on va donc arrêter un container qui a le status à OK et qui a une charge de 0.
Voici le script que je propose, ce script permet en plus de fixer notre bug sur la précédente version ;) .
Attention ceci est mon brouillon avant de faire une belle documentation sur Docker (il y a à boire et à manger).
On va utiliser le fichier dynamique fait par ./build_haproxy.bash qui se trouve dans /docker/app/haproxy.cfg (merci de regarder l’épisode précédent n°13 afin de mieux comprendre). Pour le lancement de haxproxy la dernière fois que l’on a vu cela c’était dans le n°10 , la commande était alors :
docker run -d --link my-server4-1 --link my-server4-2 --link my-server4-3 --link my-server4-4 -p 80:80 --name mon-haproxy-v15b my-haproxy-v15
Maintenant on n’a plus besoin de lien car les IP sont écrites par les serveurs eux-mêmes. On a seulement à faire un partage de fichier.
Attention ceci est mon brouillon avant de faire une belle documentation sur Docker (il y a à boire et à manger).
Je pense avoir trouvé une alternative à confd & etc , c’est consul-haproxy .
[root@localhost ~]# yum install consul
Modules complémentaires chargés : ulninfo
dockerrepo | 2.9 kB 00:00:00
ol7_UEKR3 | 1.2 kB 00:00:00
ol7_UEKR4 | 1.2 kB 00:00:00
ol7_latest | 1.4 kB 00:00:00
dockerrepo/primary_db | 15 kB 00:00:00
(1/2): ol7_latest/x86_64/updateinfo | 812 kB 00:00:01
(2/2): ol7_latest/x86_64/primary | 16 MB 00:00:17
ol7_latest 14264/14264
Aucun paquet consul disponible.
Erreur : Rien à faire
Misère, cela commence fort … sinon j’ai aussi vu une configuration un peu complexe avec vagrant.
Attention ceci est mon brouillon avant de faire une belle documentation sur Docker (il y a à boire et à manger).
Maintenant je pense que je vais travailler avec confd et etcd pour faire de la reconfiguration dynamique du serveur HAproxy. L’idée c’est que les etcd informent le confd des changements, et si changement il y a le confd refait le fichier de configuration haproxy.cfg. Puis il relance HAproxy.
Attention ceci est mon brouillon avant de faire une belle documentation sur Docker (il y a à boire et à manger).
Petit résumé rapide de mes précédents posts, à noter que grâce au tag Docker on peut retrouver tous les articles sur le sujet.
| Post n° | Intérêt | Résumé |
|---|---|---|
| 1 | 20% | Mauvaise installation à cause de la partition Docker. Mais début des commandes sous Docker : docker run , docker rmi, docker run, docker ps, |
| 2 | 70% | On voit l’intérêt de l’ajout de la partition Btrfs, on découvre le fichier Dockerfile qui est utilisé pour faire les docker build. |
| 3 | 70% | On a vu la redirection de port avec l’option -p . Et aussi docker search qui permet de voir tous les containers existant. On a aussi l’installation du container PostgreSQL. |
| 4 | 50% | Installation du container PostgreSQL mais pas comme je l’aurai voulu car je n’arrive pas à initialiser les utilisateurs dans le Dockerfile. Et les sources de server.c . |
| 5 | 30% | Découverte de la commande docker run swarn. J’ai pas vraiment approfondi la notion. |
| 6 | 60% | Un nouveau serveur : server2.c , on découvre la commande docker exec env. On a aussi la création d’un server3.c qui exploite les liens entre containers (--link) |
| 7 | 10% | Un échec complet sur l’installation de HAproxy. |
| 8 | 80% | Bonne configuration de NGINX et de HAproxy. |
| 9 | 10% | Un échec complet sur la redirection des logs syslog vers un autre serveur. |
| 10 | 90% | La création d’un server5.c qui permet de faire des insertions dans la base, d’envoyer des logs à syslog et de tester les configuration de HAproxy et Nginx. |
Il y a eu des hauts des des bas dans cette découverte de Docker.
Attention ceci est mon brouillon avant de faire une belle documentation sur Docker (il y a à boire et à manger).
On va dire que ce pas va être un pas de coté. Mon but va être d’améliorer le server4 pour en faire un server5 (source server5.c). Mais je vais aussi faire un programme de stress : client_stress.c afin de bien vérifier tout le fonctionnement.
Voici donc les amélioration sur server5.c :