virli/tutorial/5/docker-exec.md

1.3 KiB

Exercice : docker exec

Après voir lu la partie concernant les namespaces, vous avez dû comprendre qu'un docker exec, n'était donc rien de plus qu'un nsenter(1).

Réécrivons, en quelques lignes, la commande docker exec !

Pour savoir si vous avez réussi, comparez les sorties des commandes :

  • ip address ;
  • hostname ;
  • mount ;
  • pa -aux ;
  • ...

Tests {-}

``` 42sh$ docker run --name mywebserver -d -p 80:80 nginx d63ceae863956f8312aca60b7a57fbcc1fdf679ae4c90c5d9455405005d4980a 42sh$ docker container inspect --format '{{ .State.Pid }}' mywebserver 234269

42sh# ./mydocker_exec mywebserver ip address 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever 13: eth0@if14: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff link-netnsid 0 inet 172.17.0.1/16 scope global eth0 valid_lft forever preferred_lft forever

42sh# hostname koala.zoo.paris 42sh# ./mydocker_exec mywebserver hostname d63ceae86395

42sh# ./mydocker_exec mywebserver mount 42sh# ./mydocker_exec mywebserver ps aux ...

</div>