projet in C++ Skill Tree

Création d'un simple conteneur Docker en C++

Débutant

Dans ce projet, nous allons combiner le C++ avec les technologies de Namespace et de Control Group de Linux pour implémenter un simple conteneur Docker qui offre des fonctionnalités telles qu'un système de fichiers indépendant, la prise en charge de l'accès réseau et la limitation des ressources du conteneur.

C++Docker

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

L'essence de Docker est d'utiliser LXC pour réaliser des fonctionnalités similaires à celles d'une machine virtuelle, économisant ainsi les ressources matérielles et offrant aux utilisateurs plus de ressources de calcul. Ce projet combine le langage C++ avec les technologies Namespace et Control Group de Linux pour implémenter un simple conteneur Docker.

Enfin, nous allons réaliser les fonctionnalités suivantes pour le conteneur :

  1. Système de fichiers indépendant
  2. Prise en charge de l'accès réseau

👀 Aperçu

$ make
make container
make[1]: Entering directory '/home/labex/project'
gcc -c network.c nl.c
g++ -std=c++11 -o docker-run main.cpp network.o nl.o
make[1]: Leaving directory '/home/labex/project'
$ sudo./docker-run
...start container
root@labex:/## ifconfig
eth0      Link encap:Ethernet  HWaddr 00:16:3e:da:01:72
          inet6 addr: fe80::dc15:18ff:fe43:53b9/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:38 errors:0 dropped:0 overruns:0 frame:0
          TX packets:9 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:5744 (5.7 KB)  TX bytes:726 (726.0 B)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

🎯 Tâches

Dans ce projet, vous allez apprendre :

  • Comment créer un simple conteneur Docker en utilisant le langage C++ et la technologie Namespace de Linux
  • Comment implémenter un système de fichiers indépendant pour le conteneur
  • Comment activer l'accès réseau pour le conteneur

🏆 Réalisations

Après avoir terminé ce projet, vous serez en mesure de :

  • Créer un simple conteneur Docker en utilisant le langage C++ et la technologie Namespace de Linux
  • Implémenter un système de fichiers indépendant pour le conteneur
  • Activer l'accès réseau pour le conteneur
Ceci est un Guided Lab, qui fournit des instructions étape par étape pour vous aider à apprendre et à pratiquer. Suivez attentivement les instructions pour compléter chaque étape et acquérir une expérience pratique. Les données historiques montrent que c'est un laboratoire de niveau intermédiaire avec un taux de réussite de 55.56%. Il a reçu un taux d'avis positifs de 42.86% de la part des apprenants.

Enseignant

labby

Labby

Labby is the LabEx teacher.
OSZAR »