Guide du débutant sur Docker - Comment créer votre première application Docker

Vous êtes développeur et vous souhaitez débuter avec Docker? Cet article est fait pour vous.

Après une brève introduction sur ce qu'est Docker et pourquoi l'utiliser, vous pourrez créer votre première application avec Docker.

Qu'est-ce que Docker?

Docker est un logiciel libre développé par Docker Inc. Il a été présenté au grand public le 13 mars 2013 et est devenu depuis ce jour un incontournable dans le monde du développement informatique.

Il permet aux utilisateurs de créer des environnements indépendants et isolés pour lancer et déployer ses applications. Ces environnements sont alors appelés conteneurs.

Cela permettra au développeur d'exécuter un conteneur sur n'importe quelle machine.

Comme vous pouvez le voir, avec Docker, il n'y a plus de problèmes de dépendance ou de compilation. Il ne vous reste plus qu'à lancer votre conteneur et votre application se lancera immédiatement.

Mais, Docker est-il une machine virtuelle?

Voici l'une des questions les plus posées sur Docker. La réponse est: en fait, pas tout à fait.

Cela peut ressembler à une machine virtuelle au début, mais la fonctionnalité n'est pas la même.

Contrairement à Docker, une machine virtuelle comprendra un système d'exploitation complet. Il fonctionnera indépendamment et agira comme un ordinateur.

Docker partagera uniquement les ressources de la machine hôte afin d'exécuter ses environnements.

Pourquoi utiliser Docker en tant que développeur?

Cet outil peut vraiment changer la vie quotidienne d'un développeur. Afin de répondre au mieux à cette question, j'ai rédigé une liste non exhaustive des avantages que vous trouverez:

  • Docker est rapide. Contrairement à une machine virtuelle, votre application peut démarrer en quelques secondes et s'arrêter tout aussi rapidement.
  • Docker est multi-plateforme. Vous pouvez lancer votre conteneur sur n'importe quel système.
  • Les conteneurs peuvent être créés et détruits plus rapidement qu'une machine virtuelle.
  • Plus de difficultés à mettre en place votre environnement de travail. Une fois votre Docker configuré, vous n'aurez plus jamais à réinstaller manuellement vos dépendances. Si vous changez d'ordinateur ou si un salarié rejoint votre entreprise, il vous suffit de lui donner votre configuration.
  • Vous gardez votre espace de travail propre, car chacun de vos environnements sera isolé et vous pouvez les supprimer à tout moment sans impacter le reste.
  • Il sera plus facile de déployer votre projet sur votre serveur afin de le mettre en ligne.

Créons maintenant votre première application

Maintenant que vous savez ce qu'est Docker, il est temps de créer votre première application!

Le but de ce court didacticiel est de créer un programme Python qui affiche une phrase. Ce programme devra être lancé via un Dockerfile.

Vous verrez, ce n'est pas très compliqué une fois que vous avez compris le processus.

Remarque: vous n'aurez pas besoin d'installer Python sur votre ordinateur. Il appartiendra à l'environnement Docker de contenir Python afin d'exécuter votre code.

1. Installez Docker sur votre machine

Pour Ubuntu:

Tout d'abord, mettez à jour vos packages:

$ sudo apt update

Ensuite, installez docker avec apt-get:

$ sudo apt install docker.io

Enfin, vérifiez que Docker est correctement installé:

$ sudo docker run hello-world
  • Pour MacOSX: vous pouvez suivre ce lien.
  • Pour Windows: vous pouvez suivre ce lien.

2. Créez votre projet

Afin de créer votre première application Docker, je vous invite à créer un dossier sur votre ordinateur. Il doit contenir les deux fichiers suivants:

  • Un fichier ' main.py ' (fichier python qui contiendra le code à exécuter).
  • Un fichier ' Dockerfile ' (fichier Docker qui contiendra les instructions nécessaires pour créer l'environnement).

Normalement, vous devriez avoir cette architecture de dossier:

. ├── Dockerfile └── main.py 0 directories, 2 files

3. Modifiez le fichier Python

Vous pouvez ajouter le code suivant au fichier ' main.py ':

#!/usr/bin/env python3 print("Docker is magic!")

Rien d'exceptionnel, mais une fois que vous voyez « Docker est magique! ”Affiché dans votre terminal, vous saurez que votre Docker fonctionne.

3. Modifiez le fichier Docker

Un peu de théorie: la première chose à faire lorsque vous souhaitez créer votre Dockerfile est de vous demander ce que vous voulez faire. Notre objectif ici est de lancer du code Python.

To do this, our Docker must contain all the dependencies necessary to launch Python. A linux (Ubuntu) with Python installed on it should be enough.

The first step to take when you create a Docker file is to access the DockerHub website. This site contains many pre-designed images to save your time (for example: all images for linux or code languages).

In our case, we will type ‘Python’ in the search bar. The first result is the official image created to execute Python. Perfect, we’ll use it!

# A dockerfile must always start by importing the base image. # We use the keyword 'FROM' to do that. # In our example, we want import the python image. # So we write 'python' for the image name and 'latest' for the version. FROM python:latest # In order to launch our python code, we must import it into our image. # We use the keyword 'COPY' to do that. # The first parameter 'main.py' is the name of the file on the host. # The second parameter '/' is the path where to put the file on the image. # Here we put the file at the image root folder. COPY main.py / # We need to define the command to launch when we are going to run the image. # We use the keyword 'CMD' to do that. # The following command will execute "python ./main.py". CMD [ "python", "./main.py" ]

4. Create the Docker image

Once your code is ready and the Dockerfile is written, all you have to do is create your image to contain your application.

$ docker build -t python-test . 

The ’-t’ option allows you to define the name of your image. In our case we have chosen ’python-test’ but you can put what you want.

5. Run the Docker image

Once the image is created, your code is ready to be launched.

$ docker run python-test

You need to put the name of your image after ‘docker run’.

There you go, that’s it. You should normally see “Docker is magic!” displayed in your terminal.

Code is available

If you want to retrieve the complete code to discover it easily or to execute it, I have put it at your disposal on my GitHub.

-> GitHub: Docker First Application example

Useful commands for Docker

Before I leave you, I have prepared a list of commands that may be useful to you on Docker.

  • List your images.
$ docker image ls
  • Delete a specific image.
$ docker image rm [image name]
  • Delete all existing images.
$ docker image rm $(docker images -a -q)
  • List all existing containers (running and not running).
$ docker ps -a
  • Stop a specific container.
$ docker stop [container name]
  • Stop all running containers.
$ docker stop $(docker ps -a -q)
  • Delete a specific container (only if stopped).
$ docker rm [container name]
  • Delete all containers (only if stopped).
$ docker rm $(docker ps -a -q)
  • Display logs of a container.
$ docker logs [container name]

What’s next?

After all your feedback, I decided to write the next part of this beginner’s guide. In this article, you will discover how to use docker-compose to create your first client/server-side application with Docker.

-> A beginner’s guide to Docker — how to create a client/server side with docker-compose

Conclusion

You can refer to this post every time you need a simple and concrete example on how to create your first Docker application. If you have any questions or feedback, feel free to ask.

Don't miss my content by following me on Twitter and Instagram.

You can find other articles like this on my website: herewecode.io.

Want more?

  • Each week get a motivational quote with some advice, a short tutorial into a few slides, and one developer's picture on Instagram.
  • Sign-up for the newsletter and get the latest articles, courses, tutorials, tips, books, motivation, and other exclusive content.