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

Enseignant

labby

Labby

Labby is the LabEx teacher.