# Introduction The essence of Docker is to use LXC to achieve virtual machine-like functionality, thus saving hardware resources and providing users with more computational resources. This project combines C++ with Linux's Namespace and Control Group technologies to implement a simple Docker container. Finally, we will achieve the following functionalities for the container: 1. Independent file system 2. Support for network access ## ð Preview ```bash $ 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) ``` ## ðŊ Tasks In this project, you will learn to: - Create a simple Docker container using C++ and Linux's Namespace technology - Implement an independent file system for the container - Enable network access for the container ## ð Achievements In this project, you will learn: - How to use C++ and Linux's Namespace technology to create a Docker container - How to create an independent file system for the container - How to enable network access for the container
Click the virtual machine below to start practicing