Docker Flashcards
C’est quoi docker ?
Docker est une plate-forme ouverte pour le développement, l’expédition et l’exécution d’applications. Docker vous permet de séparer vos applications de votre infrastructure afin de pouvoir livrer rapidement des logiciels. Avec Docker, vous pouvez gérer votre infrastructure de la même manière que vous gérez vos applications. En tirant parti des méthodologies de Docker pour expédier, tester et déployer rapidement le code, vous pouvez réduire considérablement le délai entre l’écriture du code et son exécution en production.
C’est quoi Docker Engine ?
Docker Engine is a client-server application with these major components:
A server which is a type of long-running program called a daemon process (the dockerd command).
A REST API which specifies interfaces that programs can use to talk to the daemon and instruct it what to do.
A command line interface (CLI) client (the docker command).
What can i use Docker for ?
Fast, consistent delivery of your applications
Responsive deployment and scaling
Running more workloads on the same hardware
La conteneurisation est de plus en plus populaire car les conteneurs sont:
Flexible : même les applications les plus complexes peuvent être conteneurisées.
Léger : les conteneurs exploitent et partagent le noyau hôte, ce qui les rend beaucoup plus efficaces en termes de ressources système que les machines virtuelles.
Portable : vous pouvez créer localement, déployer sur le cloud et exécuter n’importe où.
Lâchement couplé : les conteneurs sont hautement autonomes et encapsulés, ce qui vous permet de remplacer ou de mettre à niveau l’un sans en perturber les autres.
Évolutif : vous pouvez augmenter et distribuer automatiquement les répliques de conteneurs dans un centre de données.
Sécurisé : les conteneurs appliquent des contraintes et des isolements agressifs aux processus sans aucune configuration requise de la part de l’utilisateur.
Images et Conteneurs
Fondamentalement, un conteneur n’est rien d’autre qu’un processus en cours d’exécution, avec quelques fonctionnalités d’encapsulation supplémentaires qui lui sont appliquées afin de le maintenir isolé de l’hôte et des autres conteneurs. L’un des aspects les plus importants de l’isolation des conteneurs est que chaque conteneur interagit avec son propre système de fichiers privé; ce système de fichiers est fourni par une image Docker . Une image comprend tout ce qui est nécessaire pour exécuter une application - le code ou le binaire, les environnements d’exécution, les dépendances et tout autre objet du système de fichiers requis.
le flux de travail de développement
Maintenant que vous avez configuré votre environnement de développement, vous pouvez commencer à développer des applications conteneurisées. En général, le flux de travail de développement ressemble à ceci:
Créez et testez des conteneurs individuels pour chaque composant de votre application en créant d’abord des images Docker.
Assemblez vos conteneurs et votre infrastructure de support dans une application complète.
Testez, partagez et déployez votre application conteneurisée complète.
Dans cette étape du didacticiel, concentrons-nous sur l’étape 1 de ce flux de travail: créer les images sur lesquelles seront basés vos conteneurs. N’oubliez pas qu’une image Docker capture le système de fichiers privé dans lequel vos processus conteneurisés s’exécuteront; vous devez créer une image contenant exactement ce dont votre application a besoin pour s’exécuter.
Construisez et testez votre image
docker build –tag bulletinboard:1.0 .
xécutez la commande suivante pour démarrer un conteneur basé sur votre nouvelle image:
docker run –publish 8000:8080 –detach –name bb bulletinboard:1.0
Il y a quelques indicateurs communs ici:
- -publishdemande à Docker de transférer le trafic entrant sur le port 8000 de l’hôte vers le port 8080 du conteneur. Les conteneurs ont leur propre ensemble de ports privés, donc si vous voulez en atteindre un depuis le réseau, vous devez y transférer le trafic de cette manière. Sinon, les règles de pare-feu empêcheront tout le trafic réseau d’atteindre votre conteneur, comme posture de sécurité par défaut.
- -detach demande à Docker d’exécuter ce conteneur en arrière-plan.
- -namespécifie un nom avec lequel vous pouvez faire référence à votre conteneur dans les commandes suivantes, dans ce cas bb.
Executer container
docker container run –publish
Processus de Docker
- Telecharger l image dans Docker Hub
- start new Container
- Exposed port 80 on Host Machine
- Routes traffic to the container port 80
List running Containers
docker Container ls
Stop Docker
Docker Contqiner Stop < contqiner_id>
list all running and stopped containers
docker container ls -a
Run vs Start Container
run : Start a new Container always
Start :start a existing containers
Docker Container Name
docker container run –public 80:80 – detach –name
see logs of a specific container
docker container logs
see process running inside the container
docker container top container_id
remove all unused containers
docker container rm docker_id docker_id
Containers and Virtual machines
- have similar ressource allocation
- Containers virtualise the Os but Vm are virtualise the hardware
- Containers are portable
Docker run image (process)
- looks for the image in Image Cache
- Then looks in remote dcker repository
- dpwnload the latest versio, of image
- create new container based on the image
- give it a virtual ip on private network inside the docker engine
- open port 80 on host machine and route to port 80 inside the container
- starts container by using cmd in imager docker file
Process List in One Container
Docker container top
Details of one Container Config
Docker container inspect id