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 :
- Système de fichiers indépendant
- 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