Docker
Lister les processus en cours
docker ps -aImages
Chaque processus dépendera d’une image pareil à une iso + son appli pour une vm.
Chercher une image
docker search nginxTélécharger une image
docker pull nginxLister les images téléchargées
docker imagesou
docker image lsSupprimer une image
docker rmi nginx⚠ Si une image est sur le disque mais nous est impossible de supprimer (on parlera d’une image souvent testé à l’installation de docker) Nous allons devoir forcer sa suppression :
docker rmi -f hello-worldVoir l’historique de son image :
docker history sboistel/image:verison(1.1)Commit
Après avoir fait des changements sur une image, comment enregister tout ça ?
docker commit mycentos01 sboistel/mycentos:1.0DockerFile
Créer un docker file : vim dockerfile
FROM centos
RPM yum install -y wget
RPM yum install yum-utilsWarning
Plus il y aura de nombre de ligne dans le dockerfile, plus le nombre de couche sera important et engendra les performances.
Construire l’image
docker build -t sboistel/mycentos:1.0
docker build -t mon_image:v1.0Champs
Liste des différents champs complétable :
- FROM : Pour les images vierge seuelement !
- LABEL version : Donner une version
- LABEL description : Décrire la version
- ENV : Variable d’environnement : Example
- JAVA_HOME /usr/bin/java
- ORACLE_HOME /u01/app/oracle/$ORACLE_SID/
- RUN : Commande à effectuer “yum install ..”
- WORKDIR : Emplacement de travail
Run / Exec
Plusieurs arguments serrons ici utilisés :
- t : Avoir un terminal en sortie
- i : Interactif
Exemple
docker run -ti ubuntuExécuter une commande dans l’environnement Bash :
docker run -ti ubuntu psExécuter une commande dans un conteneur détaché en cours d’éxécution :
docker exec -name=container01 -hostname=host01 centos ping 127.0.0.1Attaché / Non Attaché
Exécuter l’image ubuntu avec des paramètres d’attachements :
docker run --name=container01 --hostname=host01 -it ubuntuExécuter l’image ubuntu avec des paramètres de détachement :
docker run -d -it centos ping 127.0.0.1Du coup, où se passes les informations du conteneur détaché ? :
docker logs ID_DU_CONTAINERRappel pour avoir l’id du conteneur :
docker ps Afin de réccupérer la main sur la session du conteneur détaché :
docker attache ID_DU_CONTAINERRevenir au mode détaché, faire la combinaison suivante : CTRL + Q
Inspecter un conteneur
Avoir les informations du conteneur en format json :
docker inspect container01Agrégation de recherche
Récolter seulement ce qui nous intérèsse ?
- Avoir un status
docker inspect --format='' container01- Avoir l’iP du
container01
docker inspect --format='' container01Réccolter le tableau State :
docker inspect --format='' container01Filtres
Filtrer tout les conteneur ayant comme nom web :
docker ps -a --filter name=webFiltrer tout les conteneurs ayant un status fermé :
docker ps -a --filter status=exitedFormater l’affichage
Formater la sortie :
docker ps -a --format " : "Import / Export
Export
Comment exporter son image ?
docker export -o mycentos01.tar mycentosVérifier son export :
tar tvf mycentos01.tarTout est ok, je compresse :
gzip mycentos01.tarImport
Comment import une image exportée ? :
docker import mycentos.tar.gz mycentos:1.0Containers
L’objectif de la conteneurisation est de faire en sorte qu’un ensemble logiciel cohérent puisse fonctionner au sein d’un conteneur.
Pour qu’une application puisse tourner au sein d’un conteneur, elle doit être empaquetée, c’est à dire qu’on la met à l’intérieur d’un paquet (une image dans la terminologie des conteneurs) avec ses dépendances.
Il existe d’ailleurs des images officielles, sur le Hub Docker par exemple, permettant de faire tourner tout type de logiciel (MySQL, Java 8, wordpresse, etc).
Type de système
Il y a plusieurs type de système de conteneurisation. Dotcloud plus connu sous le nom de Docker sera de moins en moins utilisé car tant à le déprécier.
On trouvera aussi :
- CoreOS
- Mesos
- LXC
- OpenVZ
- Containerd
- etc …
Dockerless
================================================================================
To run Docker as a non-privileged user, consider setting up the
Docker daemon in rootless mode for your user:
dockerd-rootless-setuptool.sh install
Visit https://docs.docker.com/go/rootless/ to learn about rootless mode.
To run the Docker daemon as a fully privileged service, but granting non-root
users access, refer to https://docs.docker.com/go/daemon-access/
WARNING: Access to the remote API on a privileged Docker daemon is equivalent
to root access on the host. Refer to the 'Docker daemon attack surface'
documentation for details: https://docs.docker.com/go/attack-surface/
================================================================================