Ceci est une ancienne révision du document !
docker jeune mais s'appuie sur des briques logicielles pérennes. développer dans une logique de permet d'isoler des applications sans avoir a recreer une VM completes.
par defaut bulle fermée la commande expose permet aux conteneur
mapper un port du conteneur sur un port du host (publier) pour que le conteneur soit visible sur le réseau.
contenur avec appli, il tourne sur la machine, je peux le déposer sur un serveur
Isoler des processus, par dessus le SE. pousser des container sur des hotes d'une ferme de serveur
Créer des images et instancier des conteneurs
On ne peut pas utiliser directement l'image iso d'une cd avec docker. docker n'est pas une vm. les images sont des images de systeme de fichiers
avoir une image mise a dispo par docker (registry)
conteneur est une instance d'une image.
rechercher une image sur la registry:
docker search mysql
A propos de la nomenclature, les noms en 2 parties user/image
recupere une image avec argument pull
docker pull busybox
lister les images disponibles localement
docker images
Supprimer une image stockée localement:
sudo docker rmi mon-image
#lister les containers existant docker ps
#executer une image (créer un conteneur) docker run -t -i –env=“” –name=busybox busybox 'echo hello world'
une instance (container est créée)
# liste tous les conteneurs meme si les taches sont
docker ps -a
# supprimer l'instance (le conteur) docker rm busybox
ou busybox est le container ID. conteneur enveloppe pour executer un programme.
docker utilise des systeme de fichiers
J'ai fait une image, j'ai fait une instance, je les modifiée, et je fais une nouvelle image qui integre les modif avec docker commit
si je veux la partager docker push, posse l'image sur la registry pour qu'elle soit disponible pour tous.
docker et granularité? un gros coteneur application wordpress peut cotnenir beacoup de composants: base de données serveur web)
La problématique de la data, elle evolue dans le conteneur. Le l'application externaliser la data: utilisation d'un conteneur de type data: ne portera pas de process
bien decouper, maitriser la granularitémaitriser les flux et les Le docker file donne l'enchainement des commandes permettant de reconstruire documentation de référence: https://docs.docker.com/reference/builder/
Exemple
#on decide de partir de la dernière version Ubuntu FROM ubuntu:latest RUN apt-get install -y memcached #expose le service aux autres conteneur EXPOSE 11211 CMD ["/usr/bin/memcached"]
sur le site officiel, concept et vocabulaire de base dans la section référence, la syntaxe du docker file est détaillée: https://docs.docker.com/reference/builder/
Creer l'image sudo docker build -tag toto/monimage
Variables d'environnement pour passer plein d'infos dans le containers. On les définies lors de l'instanciation du container avec docker run et l'option -e
Remarque: sur le site la registry, on voit les image et les docker file qui permettent de construire l'image. Tres bonne source d'inspiration.