Attention ceci est mon brouillon avant de faire une belle documentation sur Docker (il y a à boire et à manger).
Quelques commandes :
- docker run : lancement d’un containers ou plutôt l’exécution. Il ne faut pas confondre docker run et docker start. Le run ou le fait qu’une seule fois. L’option -p permet la redirection de port , l’option -v permet le partage de fichier avec l’hôte, l’option –link permet de faire un lien entre deux containers via des macros. Je n’ai pas encore assez travailler sur join & manage pour expliquer le bon fonctionnement ( Article n°14, Article n°13, Article n°11, Article n°10, Article n°9, Article n°8, Article n°7, Article n°6, Article n°5, Article n°4, Article n°3, Article n°2, Article n°1 )
- docker push : pour pousser son image sur hub.docker.com , cela vient après docker login et docker commit ( Article n°16, )
- docker search : pour chercher une images. ( Article n°16, Article n°3, )
- docker logs : voir des logs.( Article n°11, Article n°9, Article n°8, Article n°7, )
- docker pull : prendre une image, c’est la commande que l’on fait après avoir trouvé l’image via docker search. ( Article n°16, Article n°8, Article n°5, )
- docker rmi : supprimer une image. ( Article n°4, Article n°2, Article n°1 )
- docker ps ou docker ps -a : voir les containers qui tournent. ( Article n°15, Article n°13, Article n°11, Article n°10, Article n°9, Article n°8, Article n°7, Article n°6, Article n°3, )
- docker -H … ps : voir les containers qui tourne via la Remote API. ( Article n°17, )
- docker rm : supprimer des containers. ( Article n°10, Article n°4, )
- docker build -t nom . : construire un containers. ( Article n°14, Article n°11, Article n°9, Article n°8, Article n°7, Article n°6, Article n°4, Article n°3, )
- docker start : lancement d’un container. ( Article n°17, Article n°11, )
- docker stop : arrêt d’un container. ( Article n°17, Article n°14, Article n°11, Article n°10, Article n°9, Article n°5, )
- docker restart : relancer un container. ( Article n°14, )
- docker images : voir toutes les images disponibles. ( Article n°4, )
- docker login : pour se connecter sur son compte hub.docker.com . ( Article n°16, )
- docker commit : pour faire un commit de son image dans le but de la mettre sour hub.docker.com ( Article n°16, )
- docker history : cela permet de connaitre la taille d’une image, enfin je ne m’en sert que pour cela 🙂 . ( Article n°14, )
- docker network inspect bridge : pour avoir la configuration réseau des containers ( Article n°11, )
- docker inspect : cela permet d’avoir des informations (nom, stockage, …) sur un container. ( Article n°7, )
- docker exec env : permet de voir toutes les variables d’environnement d’un container. ( Article n°6, )
- docker info : permet de savoir la version de docker que l’on utilise ( Article n°3, Article n°1 )
- docker version : permet de connaitre la version du serveur et du client docker qui est utilisé. (Article n°1 )
Quelques serveurs :
- PostgreSQL : serveur de base de donnée. C’est simplement le meilleur 🙂 . L’outil psql permet de se connecter à la base de donnée en ligne de commande. ( Article n°10, )
- HAproxy : serveur de répartition de charge. ( Article n°10, Article n°9, Article n°8, )
- NGinx : serveur de répartition de charge. ( Article n°10, )
- Server8 : le meilleur serveur au monde pour le protocole Hello World, je dis pas cela parce que c’est moi qui l’ai fait 😉 . ( Article n°14, )
- etcd & confd : serveur dynamique de configuration, mais cela fonctionne bien que sous CoreOS. ( Article n°12, )
- Syslog : service de journalisation . ( Article n°9, )
Quelques outils :
- curl : client HTTP/HTTPS en ligne de commande. ( Article n°17, )
- gcc : pour faire la compilation d’un programme en C . ( Article n°13, )
- netstat : pour avoir des statistiques sur le réseau. ( Article n°11, Article n°2, )
- yum : pour installer un package sous Oracle Linux & Redhat . La suite de yum semble être dnf ( Article n°11, Article n°6, Article n°2, Article n°1 )
- tcpdump : pour snifer le réseau, c’est l’arme lourde pour comprendre 😉 . ( Article n°11, )
- telnet : permet d’ouvrir une connexion en TCP/IP, c’est pratique pour faire des tests. ( Article n°10, Article n°8, )
- vi : le meilleur éditeur de l’univers . ( Article n°2, )
Quelques commandes linux :
- crontab : Pour modifier la crontab qui permet de faire des taches planifiées. ( Article n°15, )
- ss : statistique réseau ( Article n°3, )
- ln -s : création d’un lien symbolique ( Article n°2, )
- df -h : connaitre l’espace disque ( Article n°2, Article n°1 )
- mkdir : création d’un répertoire ( Article n°2, )
- uname -a : permet de connaitre le nom de l’hôte et la version de l’OS de l’hôte ( Article n°1 )
Rappel :
- Le lien pour voir uniquement les articles sur Docker : https://www.cyber-neurones.org/tag/docker/
Tableau de résumé des articles :
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. |
11 | 40% | Résumé, impasse sur syslog. |
12 | 10% | Un échec complet sur etcd & confd. |
13 | 40% | Notion de partage de fichier avec le OS hôte. |
14 | 30% | Création dynamique de container via des scripts BASH. Et notion de partage de fichier. |
15 | 50% | Lancement automatique de container via des scripts BASH. |
16 | 80% | Notion de base sur GitHub & le Hub de Docker. |
17 | 80% | Notion de base sur la Remote API de Docker. |
Je savais bien qu’un petit résumé était nécessaire, après 17 jours sur Docker on commence à mieux comprendre le fonctionnement et les avantages.
Les livres sur Docker :