Discover Packages
github.com/outofforest/isolator
package
module
Version:
v0.4.12
Opens a new window with list of versions in this module.
Published: May 7, 2022
License: MIT
Opens a new window with license information.
Imports: 14
Opens a new window with list of imports.
Imported by: 2
Opens a new window with list of known importers.
README
README
¶
Isolator
The goal of this library is to run shell commands in isolation using linux namespaces.
It may be called from any other program requiring to run some operation
inside container.
The goal of this library is not to be compliant with opencontainers spec. It rather provides
functionality required in my other projects.
How to use it
Take a look at example/main.go
Features
library may be used by other software instantly, it doesn't depend on starting another instance of /proc/self/exe like other libraries do,
root permissions are not required to run a container,
runs commands inside PID, NS, USER, IPC and UTS namespaces. NET namespace is not used to make an internet available to container instantly,
communication is done in JSON format using stdin and stdout as transport layer,
logs printed by executed command are transmitted back to the caller,
/proc is mounted inside container and populated with in-container processes,
/dev is populated with basic devices: null, zero, random, urandom by binding them to those existing on host,
tmpfs is mounted on /tmp,
DNS inside container is set to 8.8.8.8 and 8.8.4.4 by populating /etc/resolv.conf,
library supports mounting custom locations inside container (mounts may be writable or read-only).
Expand ▾
Collapse ▴
Documentation
¶
Start dumps executor to file, starts it, connects to it and returns client
Config stores configuration of isolator
Source Files
¶
Click to show internal directories.
Click to hide internal directories.