# Qu’est-ce que Docker

Chez Edgegap, nous travaillons avec des conteneurs pour répartir la charge uniformément à travers le monde. Nous devons lancer votre jeu en quelques millisecondes, donc les conteneurs doivent privilégier la rapidité et être construits en conséquence. Nous allons vous guider pour créer une image Docker, également appelée conteneur.

{% hint style="info" %}
Si vous souhaitez vous familiariser rapidement avec les conteneurs, nous recommandons vivement [cette vidéo rapide](https://www.youtube.com/watch?v=J0NuOlA2xDc\&ab_channel=Coderized).
{% endhint %}

<figure><img src="https://3008966946-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FsR0dHSFv9ymoC0DO5G8J%2Fuploads%2Fgit-blob-e6111f686dccc8bebc29f2f10fe2ce093f9c2b9c%2Fdocker.png?alt=media" alt=""><figcaption></figcaption></figure>

### **Qu’est-ce que Docker ?**

* Docker est une PaaS (Plateforme en tant que service) qui permet la virtualisation au niveau du système d'exploitation.

### **Qu'est-ce que la commande Docker Run ?**

* La commande docker run permet de créer un conteneur à partir d'une image afin que le moteur Docker Desktop puisse exécuter le conteneur.

### **Essayez-le**

Commençons par ajouter les outils dont vous aurez besoin sur votre ordinateur pour créer votre premier conteneur.

Vous pouvez suivre la procédure d'installation telle qu'indiquée sur Docker Desktop.

si vous utilisez [Windows 10 Pro](https://docs.docker.com/docker-for-windows/install/) Si vous utilisez [Windows 10 Édition Famille](https://docs.docker.com/docker-for-windows/install-windows-home/) Si vous utilisez [macOS](https://docs.docker.com/docker-for-mac/install/)

Maintenant que votre machine locale exécute Docker, nous pouvons commencer par un simple hello world.

```sh
docker run -d -p 80:80 --name speedtest edgegap/speedtest-edge
```

Vous pouvez ouvrir votre invite de commandes et taper la commande ci‑dessus.

Les étapes se dérouleront automatiquement.

1. Télécharger le conteneur depuis le dépôt Edgegap ( uniquement la première fois )
2. Démarrer le conteneur
3. Le nom sera speedtest (--name)
4. Pour exposer votre conteneur, vous devez le faire dans la commande docker run. Dans cet exemple, nous exposerons le port 80 vers l'extérieur, pointant vers le port 80 exposé dans le conteneur (-p)
5. Vous pouvez l'essayer en allant sur votre navigateur Web et en saisissant [http://localhost](http://localhost/)
6. Voilà, vous avez lancé votre premier conteneur.

Maintenant que votre conteneur est en cours d'exécution, vous pouvez interagir avec lui. Nous allons redémarrer le conteneur, l'arrêter et voir son réseau dans la session suivante. D'abord, vous devrez voir localement ce qui s'exécute sur votre moteur Docker ; à la ligne de commande, tapez :

```sh
docker ps
```

Vous devriez voir quelque chose de similaire également.

```
CONTAINER ID        IMAGE                    COMMAND                  CREATED             STATUS              PORTS                NAMES
dbf4d3734111        edgegap/speedtest-edge   "docker-php-entrypoi…"   il y a 29 minutes   Up 29 minutes       0.0.0.0:80->80/tcp   speedtest
```

Vous voyez visuellement les informations du conteneur exécuté sur votre ordinateur ; vous pouvez en avoir plusieurs dans cette liste.

`docker ps` est une commande simple ; vous apprendrez à l'utiliser souvent.

Supposons que vous ayez besoin de plus d'informations sur votre conteneur en cours d'exécution. Vous pouvez demander au moteur Docker de vous fournir tous les détails sur votre conteneur en exécutant la commande suivante :

```sh
docker container inspect speedtest
```

Si vous souhaitez voir le réseau interne créé par le moteur Docker, vous pouvez le faire en exécutant la commande suivante.

```sh
docker network ls
```

Vous obtiendrez quelque chose de similaire à ceci :

```
NETWORK ID          NAME                DRIVER              SCOPE
67b24038b9ca        bridge              bridge              local
6f7fe43a489d        host                host                local
3d80cdb86a7e        none                null                local
```

Si vous souhaitez approfondir la configuration du réseau, vous pouvez exécuter la commande suivante :

```sh
docker network inspect 67b24038b9ca
# où 678b24038b9ca est votre réseau connecté à votre conteneur
```

Arrêt Docker

Maintenant que vous avez démarré votre conteneur, vous pouvez l'arrêter en utilisant :

```sh
docker container stop speedtest
```
