Config Kernel Modules
cd /usr/src/linux
make menuconfig
Necessary Modules
- CONFIG_CGROUP_CPUACCT
- CONFIG_CGROUP_DEVICE
- CONFIG_CGROUP_FREEZER
- CONFIG_CGROUP_SCHED
- CONFIG_CPUSETS
- CONFIG_MEMCG
- CONFIG_CGROUP_NET_PRIO
- CONFIG_CGROUP_PIDS
- CONFIG_MEMCG_SWAP
- CONFIG_BLK_CGROUP
- CONFIG_BLK_DEV_THROTTLING
- CONFIG_CGROUP_PERF
- CONFIG_CGROUP_HUGETLB
- CONFIG_NET_CLS_CGROUP
- CONFIG_CFS_BANDWIDTH
- CONFIG_FAIR_GROUP_SCHED
- CONFIG_IPVLAN
- CONFIG_DUMMY
Add Kernel Configuration
- General setup
- *-- C**ontrol Group support --->
- [*] Memory controller
- [*] IO controller
- [*] CPU controller --->
--- CPU controller
- [*] Group scheduling for SCHED_OTHER (NEW)
- [*] CPU bandwidth provisioning for FAIR_GROUP_SCHED
- [*] PIDs controller
- [*] Simple CPU accounting controller
- [*] Perf controller
- [*] Cpuset controller
- [*] Device controller
- [*] Freezer controller
- [*] HugeTLB controller
- *-- E**nable the block layer --->
- [*] Block layer bio throttling support
- Memory Management options
- [*] Support for paging of anonymous memory (swap) --->
- [*] Networking support --->
- Networking options --->
- [*] QoS and/or fair queueing
- <M> Control Group Classifier
- [*] Network priority cgroup
- Device Drivers --->
- -*- Network device support --->
- --- Network device support
- [*] Network core driver support
- <M> Dummy net driver support
- <M> IP-VLAN support
Save Configuration & Build New Kernal
# make kernel and modules
make && make modules_install
# mount /boot only if 'noauto' option is set in the file '/etc/fstab'
mount /boot
# copy new kernel file to /boot, 'cp' command is another way
make install
# regenerate grub2 boot menu
grub-mkconfig -o /boot/grub/grub.cfg
Install Packages
# search the package name with keyword 'docker'
emerge -s docker
# install the packages with full dependence
emerge -avt app-containers/docker