@@ -27,59 +27,96 @@ Vous avez deux méthodes pour obtenir de l'aide :
En fait en lançant un conteneur, vous avez également récupéré l'image correspondante.
- relancez la commande précédente
- podman container run hello-world
```
podman container run hello-world
```
- avez-vous téléchargé une image avant exécution ?
- utilisez la commande `search` pour trouver une image vous fournissant l'utilitaire `ipcalc` (celui de rrvzero)
- podman search ipcalc
```
podman search ipcalc
```
- documentez vous sur la commande `pull` de podman
- podman help pull
```
podman help pull
```
- servez vous de cette commande pour télécharger l'image correspondante
- podman pull docker.io/rrvzero/ipcalc
- listez les images présentes
- podman images
```
podman pull docker.io/rrvzero/ipcalc
```
- listez les images présentes
```
podman images
```
- listez les conteneurs (tous)
- podman container list
```
podman container list
```
- lancez un conteneur `ipcalc`
- podman container run ipcalc
```
podman container run ipcalc
```
- que se passe-t-il ?
- renseignez-vous sur les options `-i` et `-t`
- interactif et teletypie
- lancez un conteneur `ipcalc` et utilisez la commande `ipcalc`
- podman container run -i -t ipcalc:latest
```
podman container run -i -t ipcalc:latest
```
- depuis un autre terminal SilverBlue listez les conteneurs
- podman container list
```
podman container list
```
- stoppez votre conteneur `ipcalc` par son nom
```
- podman stop dream_nash
```
- que s'est-il passé ?
- il pourra pas SIGTERM mais il utilisera un SIGKILL pour le tuer
- recherchez et lancez un conteneur `httpd`
```
- podman search httpd
- podman container run docker.io/library/httpd
```
- stoppez votre conteneur
```
- podman stop awesome_johnson
```
- avez-vous noté la différence entre les deux arrêts ?
- oui pour la deuxieme on note aucun probleme SIG
- relancez maintenant le conteneur `httpd` en démon
```
- podman restart awesome_johnson
```
- stoppez votre conteneur
```
- podman stop awesome_johnson
```
- relancez votre conteneur
- podman run awesome_johnson
```
- podman run awesome_johnson
```
## Commande par défaut
- avec la commande `inspect` de podman, identifiez le `PATH` et la commande lancée par défaut
```
- podman inspect awesome_johnson
```
- lancez un conteneur `ipcalc` non interactif qui exécute la commande
- podman container run -t ipcalc:latest
```
- podman container run -t ipcalc:latest
```
## Ports réseaux
- utilisez un navigateur pour consultez la page d'accueil du site par défaut (http://127.0.0.1), si votre conteneur httpd est toujours fonctionnel
- ceci ne fonctionne pas
- consultez la documentation concernant l'option `-p`
```
- podman help -p
```
- faites correspondre le port 8080 de votre machine au port 80 de votre conteneur
```
- podman run -p 8080:80 --name serveurweb docker.io/library/httpd
```
- testez
- 127.0.0.1:8080
## Exec
...
...
@@ -88,21 +125,34 @@ Dans l'exercice précédent, nous avons lancé un serveur web sans le modifier.
Nous allons maintenant modifier la page d'accueil du site par défaut
- lancez un conteneur `httpd` que vous appelerez `serveurweb`
- podman run -p 8080:80 --name serveurweb docker.io/library/httpd
```
- podman run -p 8080:80 --name serveurweb docker.io/library/httpd
```
- renseignez-vous sur la commande `exec` de podman ; en particulier sur les options `-i` et `-t`
```
- podman search exec
```
- utilisez cette commande pour vous connecter à ce conteneur
```
- podman exec -it serverweb bash
```
- installez `nano`
```
- apt-get update
- apt-get install
```
- en sachant que le fichier de configuration du serveur web est : `/usr/local/apache2/conf/httpd.conf`, éditez le fichier renvoyé par défaut, de manière à ce qu'il vous affiche `<h1>Bravo !</h1>`
```
- nano /usr/local/apache2/htdocs/index.html
```
- testez
- 127.0.0.1:8080
```
- 127.0.0.1:8080
```
- stoppez, puis effacez ce conteneur
```
- podman -rm serverweb
```
## Volume
la manière de faire persister des données plus longtemps que la durée de vie du conteneur consiste à utiliser un **volume**. Un volume est une manière d'associer un répertoire (local dans notre cas) à un conteneur. Cette association peut revêtir deux formes :
...
...
@@ -111,37 +161,57 @@ la manière de faire persister des données plus longtemps que la durée de vie
### avec une création de volume préalable
- consultez la documentation de la commande `volume` de podman
- podman help
```
- podman help
```
- créez un volume nommé `monvolume`
```
- podman volume create monvolume
- puis lancez un conteneur `httpd` associant `monvolume` au `DocumentRoot` apache
```
- puis lancez un conteneur `httpd` associant `monvolume` au `DocumentRoot` apache
```
- podman run -p 8080:80 --name serverVolume -v monvolume:/usr/local/apache2/htdocs docker.io/library/httpd
```
- testez depuis un navigateur
- utilisez la sous-commande `inspect` et consultez le contenu du volume
```
- podman inspect monvolume
```
- pouvez-vous éditer le fichier `index.html` présent ?
- si on se connecte au volume du conteneur
- nano /usr/local/apache2/htdocs/index.html
```
- nano /usr/local/apache2/htdocs/index.html
```
- stoppez, puis effacez ce conteneur
- podman stop serverVolume
- podman rm serverVolume
- consultez le contenu du volume. Le fichier existe-t-il toujours ?
```
- podman stop serverVolume
- podman rm serverVolume
```
- consultez le contenu du volume. Le fichier existe-t-il toujours ?
- on ne peux le consulter avec inspecter le fichier est supprimmer .
- reprenez cette procédure mais créez le fichier `index.html` vous même
### association directe
- créez un répertoire `htdocs`
```
- mkdir htdocs
```
- puis lancez un conteneur `httpd` associant ce répertoire au `DocumentRoot` apache
```
- podman run -p 8080:80 --name assiociationDirecte -v $(pwd)/htdocs:/usr/local/apache2/htdocs docker.io/library/httpd:latest
```
- testez depuis un navigateur
- placez un fichier `index.html` dans votre répertoire `htdocs`
- echo "Ma santati yalla " > htdocs/index.html
```
- echo "Ma santati yalla " > htdocs/index.html
```
- testez depuis un navigateur
## Export
- exportez votre conteneur précédent dans un fichier tar (commande `export`)