Créer un Projet Web Hello World avec Docker sur Windows

Docker repose sur deux concepts fondamentaux : les images et les conteneurs. Une image est un fichier en lecture seule, comparable à une application comme Tomcat, MySQL ou Redis. Un conteneur est un système Linux minimaliste créé par Docker, dans lequel les images s'exécutent de manière isolée. Par exemple, vous pouvez exécuter plusieurs instances de MySQL dans des conteneurs distincts.

Installation de Docker

Sous Windows, installez Docker Desktop. Lancez l'installation et suivez les étapes par défaut. Une fois installé, ouvrez un terminal et exécutez :

C:\Users\Utilisateur>docker version
Client:
 Cloud integration: 1.0.14
 Version:           20.10.6
 API version:       1.41
 Go version:        go1.16.3
 Git commit:        370c289
 Built:             Fri Apr  9 22:49:36 2021
 OS/Arch:           windows/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.6
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.13.15
  Git commit:       8728dd2
  Built:            Fri Apr  9 22:44:56 2021
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.4.4
  GitCommit:        05f951a3781f4f2c1911b05e61c160e9c30eaa8e
 runc:
  Version:          1.0.0-rc93
  GitCommit:        12644e614e25b05da6fd08a38ffa0cfe1903fdec
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

Cette sortie confirme l'installation réussie.

Installation de Tomcat via Docker

Téléchargez l'image Tomcat depuis le registre Docker :

C:\Users\Utilisateur>docker pull tomcat
Using default tag: latest
latest: Pulling from library/tomcat
bd8f6a7501cc: Pull complete
44718e6d535d: Pull complete
...
Status: Downloaded newer image for tomcat:latest
docker.io/library/tomcat:latest

Pour accélérer le téléchargement, configurez un registre miroir. Vérifiez les images disponibles :

C:\Users\Utilisateur>docker images
REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
tomcat        latest    c0e850d7b9bb   2 weeks ago    667MB
hello-world   latest    d1165f221234   2 months ago   13.3kB

Lancement de Tomcat

Exécutez la commande suivante pour démarrer Tomcat :

C:\Users\Utilisateur>docker run -p 8000:8080 tomcat

L'option -p 8000:8080 mappe le port 8080 du conteneur au port 8000 de l'hôte. Accédez à http://localhost:8000 dans votre navigateur.

Résolution de l'erreur 404

Si une erreur 404 apparaît, identifiez le conteneur en cours :

C:\Users\Utilisateur>docker ps
CONTAINER ID   IMAGE     COMMAND             CREATED         STATUS         PORTS                                       NAMES
54f85f2559cd   tomcat    "catalina.sh run"   6 minutes ago   Up 6 minutes   0.0.0.0:8000->8080/tcp, :::8000->8080/tcp   silly_morse

Connectez-vous au conteneur :

C:\Users\Utilisateur>docker exec -it 54f85f2559cd /bin/bash
root@54f85f2559cd:/usr/local/tomcat# ls
BUILDING.txt     LICENSE  README.md      RUNNING.txt  conf  logs            temp     webapps.dist
CONTRIBUTING.md  NOTICE   RELEASE-NOTES  bin          lib   native-jni-lib  webapps  work

Le dossier webapps est vide ; les fichiers sont dans webapps.dist. Corrigez cela en déplaçant les fichiers :

root@54f85f2559cd:/usr/local/tomcat# mv webapps.dist/* webapps/
root@54f85f2559cd:/usr/local/tomcat# rm -rf webapps.dist/

Pour rendre cette modification permanente, créez une nouvlele image :

C:\Users\Utilisateur>docker commit -m="Correction 404" -a="auteur" 54f85f2559cd mon-tomcat:1.0
sha256:99efe959f94c616aad213fc4c4b899cd1d16faac7511834ee5942fbd6693e8c6

Redémarrez avec la nouvelle image :

docker run -p 8000:8080 mon-tomcat:1.0

Déploiement d'une page HTML personnalisée

Créez un dossier mon-projet avec un fichier index.html :

<h1>Bonjour le monde</h1>

Ajoutez un fichier Dockerfile (sans extension) :

FROM mon-tomcat:1.0
WORKDIR /usr/local/tomcat/webapps
ADD mon-projet ./mon-projet

Construisez l'image :

docker build -t utilisateur/mon-app:1.0 C:\chemin\vers\mon-projet

Lancez l'application :

docker run utilisateur/mon-app:1.0

Accédez à http://localhost:8000/mon-projet.

Commandes Docker essentielles

Commande Exemple d'utilisation
Liste des images docker images
Conteneurs actifs docker ps
Arrêter un conteneur docker stop ID_CONTENEUR
Redémarrer un conteneur docker restart ID_CONTENEUR
Se connecter à un conteneur docker exec -it ID_CONTENEUR /bin/bash
Exécuter une image docker run IMAGE_ID
Supprimer un conteneur docker rm ID_CONTENEUR
Supprimer une image docker rmi IMAGE_ID

Étiquettes: Docker Tomcat Windows conteneur image

Publié le 26 juillet à 15h04