4204d4

Intro au CLI de Docker


    $ docker --help
    $ docker commande --help

    $ docker info
    $ docker container ls
    $ docker ps
    $ docker ps -a

    $ d image pull hello-world
    $ d search cowsay

    $ d pull lherrera/cowsay
    $ docker image

    $ docker run hello-world
    $ docker run IMAGE-ID-COWSAY(47) 'Bonjour le monde!'

    $ docker image rm 47 
        Error response from daemon: conflict: unable to delete 47e12946765b (must be forced) - image is being used by stopped container f98b4071e2c3
        $ docker ps -a
        $ docker rm f98
        $ docker image rm 47
        Note: docker rmi -f 47
        
    ---

    $ docker run --name yo alpine (télécharge, exécute et quitte)
    $ docker run -it alpine :  mkdir, touch, vi test, exit
    $ dp, dpp
    $ d restart alpine, dp
    $ d run --name yo -itd alpine
    $ d attach yo, exit, dp
    $ d exec -it alpine /bin/sh, exit, dp
        $ d stop alpine
    $ d rename yo yoyo, dpp    
    $ d rm c9 92 ef ad, dpp

---

    Port IP

    $ docker search nginx
    $ docker pull nginx:latest, di
    $ dr nginx, la console est bloquée par le log du serveur web
        Tester dans un fureteur, pas de résultat
    $ CTRL+C 
    $ d logs CONT_ID 
    $ dr -it -d -p 8080:80 --name web nginx
         Tester dans un fureteur, pas de résultat
    $ d exec -it web bash
        $ nano?, apt install nano, apt update, apt install nano
        Éditer /usr/share/nginx/html/index.html     

---
    Images alainboudreault
    
        $ d  search alainboudreault
        $ dr alainboudreault/bonjour-420
        $ d image inspect alainboudreault/bonjour-420
               --> "Cmd": ["/bin/yo"],
        $ d run -it --name bonjour alainboudreault/bonjour-420 bash
            /# yo
            /# ls
            /# apt install nano
            /# nano bonjour.cpp
            /# gcc bonjour.cpp -o bonjour
            /# mv bonjour /bin/yo
            /# exit
        $ d exec bonjour /bin/yo
        # produire une image avec la nouvelle version
        $ docker commit bonjour bonjour
        $ di
        $ d run bonjour  # l'app bonjour ne roule pas!
        $ d inspect bonjour -> "Cmd": ["bash"]
        $ docker commit --change='CMD ["/bin/yo"]' bonjour:v2
        $ dr bonjour:v2

        Faire labo 3.6 de http://ve2cuy.com/420-4d4b/index.php/docker-introduction/
            Extra, créer une nouvelle image 'image-web' à partir du résultat final et tester.

---

$ docker inspect serveur-web 

$ docker inspect serveur-web | grep  "IPAddress"
    "IPAddress": "172.17.0.3",

 $ inspect serveur-web | grep  "Image"
    "Image": "sha256:325b00a35073d9aa1d3df16da8afbbae1ac7d824c505f7490cd5cdbb79d60f6d",
    "Image": "nginx:latest",

---

lzd$ docker container ls --filter "status=exited"

$ docker run -d --name "toto" --label "app=web-service" --label "environment=production" nginx:latest
$ docker container ls --filter "name=toto"
$ docker container ls --filter "label=env=production"

# Afficher les conteneurs d'image de type x
$ docker ps -a --filter ancestor=nginx

#  Afficher avec un format personnalisé :
$ docker ps --filter ancestor=nginx --format "table \t\t\t"