Créer et partager une image docker

But: pouvoir partager un logiciel avec d’autres utilisateurs, ou sur d’autres ordinateurs, de manière simple, sans avoir à l’installer.

Nous allons prendre l’exemple de la création d’une image docker pour OceanParcels.

1. Création de l’image docker

En local, créer une image docker oceanparcels avec le fichier Dockerfile.

2. Partage de l’image docker

2.1 Partage via Docker Hub

Prérequis: Pour utiliser Docker Hub, il est nécessaire de s’y créer un compte (on peut utiliser son compte Github).

L’avantage de ce site est la simplicité de partage. L’utilisateur ne manipule pas de fichier Dockerfile, et n’a pas à recréer l’image. Elle est directement téléchargeable.

Taguer l’image en indiquant sa version (ex: 3.1.0) pour Docker Hub et la pousser sur Docker Hub:

docker tag oceanparcels:3.1.0 cmazoyer/oceanparcels:3.1.0
docker login
docker push cmazoyer/oceanparcels:3.1.0

On peut ensuite vérifier dans son compte Docker Hub que l’image a bien été poussée.

Un utilisateur peut ensuite télécharger l’image déjà faite sur n’importe quel ordinateur, il lui suffit de faire:

docker pull cmazoyer/oceanparcels:3.1.0

Il peut ensuite l’utiliser comme n’importe quelle image docker (docker run …)

Par exemple, pour lancer un conteneur avec l’image oceanparcels:3.1.0, avec le répertoire physique /home/monlogin/work équivalent au répertoire dans le docker /work, on peut faire:

docker run -i -v /home/monlogin/work:/work -t cmazoyer/oceanparcels:3.1.0

2.2 Partage via un fichier Dockerfile

En téléchargeant le fichier Dockerfile, l’utilisateur peut recréer l’image docker sur son ordinateur, avec la commande build.

Il peut ensuite utiliser la commande run pour lancer un conteneur avec l’image créée.

Nous avons donc partagé notre image docker de Ocean Parcels de deux façons possibles.