namespaces trong Linux kernel để chạy được Podman container và Docker container – Phần 2

User namespace trong Linux kernel.

User namespace

CONFIG_USER_NS:

This allows containers, i.e. vservers, to use user namespaces
to provide different user info for different servers.

When user namespaces are enabled in the kernel it is
recommended that the MEMCG option also be enabled and that
user-space use the memory control groups to limit the amount
of memory a memory unprivileged users can use.

If unsure, say N.

Symbol: USER_NS [=y]
Type  : bool
Defined at init/Kconfig:1236
  Prompt: User namespace
  Depends on: NAMESPACES [=y]
  Location:
    -> General setup
      -> Namespaces support (NAMESPACES [=y])
        -> User namespace (USER_NS [=y])

PID namespace trong Linux kernel.

PID Namespaces

CONFIG_PID_NS:

Support process id namespaces.  This allows having multiple
processes with the same pid as long as they are in different
pid namespaces.  This is a building block of containers.

Symbol: PID_NS [=y]
Type  : bool
Defined at init/Kconfig:1250
  Prompt: PID Namespaces
  Depends on: NAMESPACES [=y]
  Location:
    -> General setup
      -> Namespaces support (NAMESPACES [=y])
        -> PID Namespaces (PID_NS [=y])

Network namespace trong Linux kernel.

Network namespace

CONFIG_NET_NS:

Allow user space to create what appear to be multiple instances
of the network stack.

Symbol: NET_NS [=y]
Type  : bool
Defined at init/Kconfig:1258
  Prompt: Network namespace
  Depends on: NAMESPACES [=y] && NET [=y]
  Location:
    -> General setup
      -> Namespaces support (NAMESPACES [=y])
        -> Network namespace (NET_NS [=y])

Coi cấu hình Linux kernel hiện tại có biên dịch Linux namespace nào thì xài lệnh dưới

grep _NS= /boot/config-`uname -r`
CONFIG_UTS_NS=y
CONFIG_TIME_NS=y
CONFIG_IPC_NS=y
CONFIG_USER_NS=y
CONFIG_PID_NS=y
CONFIG_NET_NS=y