- 1- Commandes du chapitre
- 2- Liens (dans l'ordre d'apparition dans le chapitre)
mkdir -p /vagrant/workdir/chapitre5/alt_docker_config/
tee /vagrant/workdir/chapitre5/alt_docker_config/config.json <<-'EOF'
{
"psFormat":"table {{.ID}}\\t{{.Image}}\\t{{.Command}}\\t{{.Ports}}\\t{{.Status}}"
}
EOF
export DOCKER_CONFIG=/vagrant/workdir/chapitre5/alt_docker_config/
docker ps
Pour réinitialiser l'affichage par défaut, vous pouvez utiliser la commande suivante:
unset DOCKER_CONFIG
Nous ne reprenons ci-dessous que les lignes de commande complexes et pas les simples
docker <commande>.
Pour cet exemple, vous devez ouvrir un autre terminal sur votre machine virtuelle. Pour ce faire, ouvrez un terminal sur votre hôte, placez-vous dans le répertoire que vous avez créé lors de l'installation de votre environnement de travail (cf chapitre 3) et lancez la commande vagrant ssh.
ERRATUM : docker events / docker system events
Dans le premier terminal :
docker container prune
docker run -d --name nginx nginx
Dans le second terminal :
docker events
Dans le premier terminal :
docker pause nginx
docker unpause nginx
docker stop nginx
docker start nginx
Vous pouvez aussi utiliser l'API REST indiquée en fin de paragraphe avec la commande
curl https://localhost:2375/eventsà la place de la commandedocker eventdans le second terminal. Celle-ci affichera un log similaire à celui-ci (au format JSON):
{"status":"kill","id":"24bf2d53a1b275b15cbf541c30869cb8190fabb893aee1c0171e59cf7469e4a5","from":"nginx","Type":"container","Action":"kill","Actor":{"ID":"24bf2d53a1b275b15cbf541c30869cb8190fabb893aee1c0171e59cf7469e4a5","Attributes":{"image":"nginx","maintainer":"NGINX Docker Maintainers \u003cdocker-maint@nginx.com\u003e","name":"nginx","signal":"3"}},"scope":"local","time":1648398130,"timeNano":1648398130307689172}
{"status":"die","id":"24bf2d53a1b275b15cbf541c30869cb8190fabb893aee1c0171e59cf7469e4a5","from":"nginx","Type":"container","Action":"die","Actor":{"ID":"24bf2d53a1b275b15cbf541c30869cb8190fabb893aee1c0171e59cf7469e4a5","Attributes":{"exitCode":"0","image":"nginx","maintainer":"NGINX Docker Maintainers \u003cdocker-maint@nginx.com\u003e","name":"nginx"}},"scope":"local","time":1648398130,"timeNano":1648398130355676929}
{"Type":"network","Action":"disconnect","Actor":{"ID":"737c13c1b3d9356562154d1a329212b0bdcfe41b58fced5e623ad869907e60e4","Attributes":{"container":"24bf2d53a1b275b15cbf541c30869cb8190fabb893aee1c0171e59cf7469e4a5","name":"bridge","type":"bridge"}},"scope":"local","time":1648398130,"timeNano":1648398130402058274}
{"status":"stop","id":"24bf2d53a1b275b15cbf541c30869cb8190fabb893aee1c0171e59cf7469e4a5","from":"nginx","Type":"container","Action":"stop","Actor":{"ID":"24bf2d53a1b275b15cbf541c30869cb8190fabb893aee1c0171e59cf7469e4a5","Attributes":{"image":"nginx","maintainer":"NGINX Docker Maintainers \u003cdocker-maint@nginx.com\u003e","name":"nginx"}},"scope":"local","time":1648398130,"timeNano":1648398130413247932}
{"Type":"network","Action":"connect","Actor":{"ID":"737c13c1b3d9356562154d1a329212b0bdcfe41b58fced5e623ad869907e60e4","Attributes":{"container":"24bf2d53a1b275b15cbf541c30869cb8190fabb893aee1c0171e59cf7469e4a5","name":"bridge","type":"bridge"}},"scope":"local","time":1648398132,"timeNano":1648398132643159071}
{"status":"start","id":"24bf2d53a1b275b15cbf541c30869cb8190fabb893aee1c0171e59cf7469e4a5","from":"nginx","Type":"container","Action":"start","Actor":{"ID":"24bf2d53a1b275b15cbf541c30869cb8190fabb893aee1c0171e59cf7469e4a5","Attributes":{"image":"nginx","maintainer":"NGINX Docker Maintainers \u003cdocker-maint@nginx.com\u003e","name":"nginx"}},"scope":"local","time":1648398132,"timeNano":1648398132893714377}
docker create -name=webserver nginx
docker start webserver
docker run -t -i centos:7 /bin/bash
docker run -d --name loop php php -r "while(true){echo \"Log something every 2 sec\n\";sleep(2);}"
docker ps
docker logs --tail 4 loop
Pour stopper le conteneur loop:
docker stop loop
docker rm loop
Ligne de commande utilisant le driver "syslog":
docker run -d --log-driver syslog --name loop php php -r "while(true){echo \"Log something every 2 sec\n\";sleep(2);}"
sudo tail -f /var/log/messages
docker run -d --name webserver nginx
docker exec -t -i webserver /bin/bash
docker run -d -p 8000:80 --name webserver nginx
docker attach --sig-proxy=false webserver
docker run -d -p 8000:80 --name webserver nginx
docker cp webserver:/usr/share/nginx/html/index.html .
echo "Hello World" > index.html
docker cp index.html webserver:/usr/share/nginx/html/index.html
docker run -t -i --name exemple centos:7 /bin/bash
docker diff exemple
echo "Hello" > test.txt
docker diff exemple
docker run -d --name webserver nginx
docker export webserver > test.tar
Si vous souhaitez regarder ce que contient ce fichier, archive:
mkdir extract
tar xvf test.tar --directory extract
ls extract/
Vous notez que le répertoire contient l'ensemble du système de fichier du conteneur, soit quelque chose de ce type:
[vagrant@localhost ~]$ ls extract/
bin dev docker-entrypoint.sh home lib64 mnt proc run srv tmp var
boot docker-entrypoint.d etc lib media opt root sbin sys usr
Vous pouvez ensuite utiliser la commande docker import pour créer une image à partir du fichier "tarball":
[vagrant@localhost ~]$ docker import test.tar monimage
sha256:ba29751804efd5f7e4c77f38318079eb93245c554dbaf652a8eedabdd6c3887b
[vagrant@localhost ~]$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
monimage latest ba29751804ef 4 seconds ago 140MB
nginxhello latest 67341a32a437 2 hours ago 93.4MB
php latest 8b13149eddaa 8 days ago 484MB
nginx latest f2f70adc5d89 9 days ago 142MB
hello-world latest feb5d9fea6a5 6 months ago 13.3kB
centos 7 eeb6ee3f44bd 6 months ago 204MB
nginx 1.7 d5acedd7e96a 6 years ago 93.4MB
docker save centos:7 > centos.tar
docker load -i=centos.tar
docker search --filter "is-official=true" php
https://docs.docker.com/engine/reference/commandline/dockerd/
https://docs.docker.com/engine/security/rootless/
https://runc.io/ (redirigé vers https://github.com/opencontainers/runc)
https://hub.docker.com/r/ingensi/play-framework/
https://cloud.google.com/container-registry/
https://azure.microsoft.com/en-us/services/container-registry/