Passer au contenu du pied de page
UTILISATION DE IRONSECUREDOC

Démarrer un conteneur Docker à partir d'une image (tutoriel pour développeurs)

Qu'est-ce que Docker?

Docker est une plateforme open source qui déploie et gère automatiquement les applications dans des conteneurs légers et portables. Les conteneurs regroupent une application et ses dépendances, notamment les bibliothèques et les fichiers de configuration, afin qu'elle puisse fonctionner de manière cohérente dans différents environnements. Cette cohérence simplifie le développement et les tests, car les applications peuvent s'exécuter de manière identique sur différents systèmes, que ce soit sur l'ordinateur portable d'un développeur, un serveur ou un environnement cloud . La scalabilité dans la gestion des applications implique de développer, de déployer et d'exécuter efficacement des conteneurs, ce que Docker facilite.

! Démarrer un conteneur Docker à partir d'une image (Tutoriel pour développeurs) : Figure 1 - Docker

Les images Docker facilitent grandement la spécification d'un environnement d'exécution cohérent pour les développeurs. La plupart des images préconfigurées sont disponibles sur Docker Hub, un registre ouvert que les développeurs peuvent utiliser directement ou personnaliser. Pour les applications impliquant plusieurs conteneurs, des outils comme Docker Compose orchestrent ces derniers, tandis que Kubernetes permet une mise à l'échelle et une automatisation encore plus complexes. Docker est devenu un outil essentiel dans le développement logiciel et le DevOps.

Qu'est-ce qu'un conteneur Docker ?

Un conteneur Docker est essentiellement une application avec toutes ses dépendances (bibliothèques, fichiers binaires et fichiers de configuration) regroupées dans une entité exécutable autonome et légère. Les conteneurs conçus de manière isolée s'exécutent sur le noyau d'un système d'exploitation hôte, évitant ainsi toute interférence d'autres logiciels en cours d'exécution. Leur facilité de démarrage, d'arrêt ou de suppression les rend idéaux pour les tests, le déploiement et la mise à l'échelle.

fonctionnalités des conteneurs Docker

  • Isolation : les conteneurs s'exécutent dans des environnements isolés ; Les applications ne seront pas en conflit les unes avec les autres, même si elles utilisent des ensembles de dépendances ou de bibliothèques différents.
  • Légers : les conteneurs partagent le noyau du système d'exploitation hôte, ils sont donc petits et ont des temps de démarrage plus rapides que les machines virtuelles.
  • Portabilité : Les conteneurs sont déterministes et peuvent s'exécuter sur n'importe quel système utilisant Docker, garantissant ainsi la cohérence entre les environnements de développement, de test et de production.
  • Évolutivité : Les conteneurs peuvent être facilement répliqués et mis à l'échelle, ce qui permet un déploiement et une gestion rapides des microservices.
  • Efficacité des ressources : les conteneurs consomment moins de ressources que les machines virtuelles, ce qui permet une densité plus élevée et une utilisation efficace des ressources informatiques.

Qu'est-ce qu'une image Docker ?

Une image Docker est un modèle permettant de créer des conteneurs. Il est en lecture seule et structuré en couches, détaillant les fichiers système et les dépendances nécessaires au fonctionnement d'une application. Les Dockerfiles servent à créer des images, en spécifiant comment construire une image Docker, ce qui peut impliquer des tâches telles que l'installation de logiciels ou la copie de fichiers. Chaque modification apportée à un Dockerfile crée une nouvelle couche d'image, préservant ainsi l'efficacité et la modularité.

Caractéristiques d'une image Docker

  • Architecture multiniveaux : les images sont construites par couches à l'aide de Dockerfiles. Chaque instruction d'un Dockerfile ajoute une couche ; les images doivent donc être optimisées pour ne reconstruire que les couches modifiées.
  • Réutilisabilité : Les images de base telles qu'Ubuntu ou Node.js peuvent être réutilisées dans différents projets, ce qui permet de gagner du temps et des ressources lors du développement.
  • Gestion des versions : les images peuvent être étiquetées pour la gestion des versions, ce qui facilite le retour aux versions précédentes si nécessaire.
  • Modularité : Les modifications apportées à une image sont incrémentales, ce qui permet des mises à jour simples sans avoir à reconstruire l'image entière.
  • Disponible sur Docker Hub : les registres d'images publics et privés facilitent le partage et le déploiement des images.

Comment créer un conteneur Docker

Le Dockerfile est un fichier texte qui fournit les instructions pour créer votre image Docker. Dans ce fichier, vous spécifiez l'image de base, les dépendances, le code de l'application, les variables d'environnement et les commandes permettant d'exécuter l'application. Voici un exemple simple :

# Use an official Node.js runtime as a parent image
FROM node:18

# Set the working directory in the container
WORKDIR /app

# Copy package.json and install dependencies
COPY package.json /app
RUN npm install

# Copy the rest of the application code
COPY . /app

# Expose the application’s port
EXPOSE 3000

# Define the command to run the application
CMD ["node", "app.js"]

Créer l'image Docker

Utilisez le Dockerfile pour créer votre image Docker. Dans le terminal, depuis le répertoire contenant votre Dockerfile, exécutez la commande suivante :

Assurez-vous que Docker Desktop est installé avant d'exécuter la commande ci-dessous.

docker build -t my-app .
docker build -t my-app .
SHELL

Cette commande crée une image nommée my-app . Pour confirmer sa création, exécutez :

docker images
docker images
SHELL

Exécuter le conteneur Docker

À partir d'une image, vous pouvez créer un conteneur Docker puis l'exécuter à l'aide de la commande docker run . Le démon Docker démarrera et surveillera le processus soit en mode détaché (en arrière-plan), soit au premier plan.

docker run -d -p 3000:3000 --name my-running-app my-app
docker run -d -p 3000:3000 --name my-running-app my-app
SHELL

-d : Exécuter le conteneur en mode détaché.

  • -p 3000:3000 : Associer le port 3000 de l'hôte au port 3000 du conteneur. --name my-running-app : Attribuer un nom défini par l'utilisateur au conteneur.

Vérifier le conteneur

Pour vérifier les conteneurs Docker en cours d'exécution, utilisez :

docker ps
docker ps
SHELL

! Démarrer un conteneur Docker à partir d'une image (Tutoriel pour développeurs) : Figure 2 - Exécution de conteneurs Docker

La commande ci-dessus affiche les détails des conteneurs en cours d'exécution, notamment l'ID du conteneur, son nom, le nom de l'image, etc.

Arrêtez et retirez le conteneur

# Stop container
docker stop dazzling_snyder

# Remove container
docker rm dazzling_snyder
# Stop container
docker stop dazzling_snyder

# Remove container
docker rm dazzling_snyder
SHELL

! Démarrer un conteneur Docker à partir d'une image (Tutoriel pour développeurs) : Figure 3 - Arrêter le conteneur

Qu'est-ce qu'IronSecureDoc ?

IronSecureDoc Docker est une solution de traitement de documents conteneurisée proposée par Iron Software, capable de traiter automatiquement des documents dans un environnement Docker sans intervention humaine. Il offre des flux de travail documentaires complexes et une protection maximale des données grâce au chiffrement, à la signature numérique, au déchiffrement, au marquage numérique et bien plus encore pour les fichiers PDF et les documents. Il garantit des déploiements isolés, cohérents et évolutifs sur toutes les plateformes, ce qui le rend adapté à l'intégration des pipelines DevOps et CI/CD.

! Démarrage d'un conteneur Docker à partir d'une image (Tutoriel développeur) : Figure 4 - IronSecureDoc : Le serveur de sécurité et de conformité PDF

Cette approche conteneurisée améliore la gestion des documents dans les applications nécessitant une automatisation et une sécurité élevée, compatibles avec les microservices et les environnements natifs du cloud. IronSecureDoc est particulièrement utile pour les développeurs qui créent des applications nécessitant un traitement automatique et fiable des documents dans un contexte Docker contrôlé et portable.

Installez et exécutez IronSecureDoc

Exécutez la commande suivante depuis l'invite de commandes ou une fenêtre de terminal pour télécharger l'image Docker IronSecureDoc depuis le dépôt :

docker pull ironsoftwareofficial/ironsecuredoc
docker pull ironsoftwareofficial/ironsecuredoc
SHELL

! Démarrer un conteneur Docker à partir d'une image (Tutoriel pour développeurs) : Figure 5 - Télécharger l'image IronSecureDoc

Après avoir extrait l'image Docker, lancez une autre commande pour démarrer un conteneur IronSecureDoc.

Créer un Nouveau Conteneur pour IronSecureDoc

docker container run --rm -p 8080:8080 -e ENVIRONMENT=Development -e HTTP_PORTS=8080 ironsoftwareofficial/ironsecuredoc:latest
docker container run --rm -p 8080:8080 -e ENVIRONMENT=Development -e HTTP_PORTS=8080 ironsoftwareofficial/ironsecuredoc:latest
SHELL

La commande docker run ci-dessus crée une instance de conteneur IronSecureDoc.

! Démarrer un conteneur Docker à partir d'une image (Tutoriel pour développeurs) : Figure 6 - Nouveau conteneur

Utilisation du conteneur IronSecureDoc

IronSecureDoc permet aux utilisateurs d'installer et d'exécuter Docker pour expurger, certifier ou chiffrer des fichiers via son API REST.

! Démarrage d'un conteneur Docker à partir d'une image (Tutoriel pour développeurs) : Figure 7 - API Web SecureDoc

Par exemple, pour chiffrer un document, vous pouvez effectuer une requête POST à l'API IronSecureDoc :

curl -X 'POST' \
  'http://localhost:8080/v1/document-services/pdfs/encrypt?user_password=demo' \
  -H 'accept: */*' \
  -H 'Content-Type: multipart/form-data' \
  -F 'pdf_file=@test.pdf;type=application/pdf'
curl -X 'POST' \
  'http://localhost:8080/v1/document-services/pdfs/encrypt?user_password=demo' \
  -H 'accept: */*' \
  -H 'Content-Type: multipart/form-data' \
  -F 'pdf_file=@test.pdf;type=application/pdf'
SHELL

Le document est ainsi transmis à IronSecureDoc, qui traite et chiffre les données en conséquence.

Conclusion

En termes simples, Docker simplifie le déploiement d'applications car un développeur peut créer un conteneur à partir d'une image, garantissant ainsi l'uniformité dans un environnement portable et évolutif. Il en résulte un fonctionnement efficace des applications sur différentes plateformes et une meilleure utilisation des ressources, améliorant ainsi les pipelines DevOps et CI/CD.

De même, IronSecureDoc Docker utilise l'architecture conteneurisée de Docker pour offrir des solutions de traitement de documents sécurisées et automatisées. Ensemble, Docker et IronSecureDoc fournissent des outils puissants pour la création d'applications sécurisées et évolutives dans le développement logiciel moderne. Pour plus d'informations sur les licences d'IronSecureDoc, cliquez sur cette page de licences , et pour plus de détails sur les nombreux produits d'Iron Software, visitez la page de la suite de bibliothèques .

Questions Fréquemment Posées

Qu'est-ce que Docker et pourquoi est-il important pour les développeurs?

Docker est une plateforme open-source qui automatise le déploiement et la gestion des applications dans des conteneurs. Il emballe les applications avec leurs dépendances, assurant une opération cohérente à travers différents environnements, ce qui simplifie le développement, les tests et la mise à l'échelle.

Comment les images Docker facilitent-elles le déploiement d'applications?

Les images Docker servent de modèles en lecture seule pour créer des conteneurs. Elles définissent les fichiers systèmes et les dépendances nécessaires à l'exécution d'une application, permettant un partage et un déploiement faciles. Les images peuvent être stockées et accessibles depuis des registres comme Docker Hub.

Quelles sont les étapes clés pour créer et exécuter un conteneur Docker ?

Pour créer et exécuter un conteneur Docker, vous commencez par écrire un Dockerfile spécifiant l'image de base et les dépendances. Ensuite, construisez l'image Docker à partir du Dockerfile et utilisez la commande docker run pour créer et démarrer le conteneur.

Comment IronSecureDoc améliore-t-il le traitement des documents dans Docker?

IronSecureDoc est une solution basée sur Docker qui automatise le traitement des documents avec des fonctionnalités telles que le chiffrement et la signature numérique. Il assure des workflows sécurisés et évolutifs au sein des conteneurs Docker, le rendant idéal pour une intégration dans les pipelines DevOps et CI/CD.

Quels avantages les conteneurs Docker offrent-ils pour le développement d'applications?

Les conteneurs Docker offrent une isolation, un fonctionnement léger, une portabilité et une efficacité des ressources. Ils assurent une exécution cohérente de l'application à travers les environnements, soutiennent un déploiement rapide et simplifient la gestion des microservices.

Comment les développeurs peuvent-ils assurer une gestion sécurisée des documents en utilisant Docker?

Les développeurs peuvent utiliser IronSecureDoc pour automatiser le traitement sécurisé des documents dans un conteneur Docker. Il offre le chiffrement, la signature numérique et d'autres fonctionnalités de sécurité, améliorant la protection et l'intégrité des workflows de documents.

Quel rôle joue Docker Hub dans le déploiement des conteneurs ?

Docker Hub agit comme un registre ouvert pour les images Docker préconstruites, permettant aux développeurs d'accéder et de partager des images. Cela facilite la personnalisation et le déploiement facile d'applications, accélérant le processus de développement.

Comment Docker améliore-t-il l'évolutivité et l'efficacité des applications?

Docker améliore l'évolutivité en permettant une réplication et une gestion faciles des conteneurs. Cela permet aux applications de s'adapter rapidement et efficacement, optimisant l'utilisation des ressources et soutenant les pratiques modernes de développement logiciel.

Quel est le but d'un Dockerfile dans la création de conteneurs?

Un Dockerfile est utilisé pour définir l'image de base, les dépendances, le code de l'application et les commandes d'exécution pour un conteneur Docker. Il sert de plan pour construire des images Docker, qui peuvent ensuite être utilisées pour créer des conteneurs.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite