- Notifications
You must be signed in to change notification settings - Fork9
A tiny tool to manage containers (inspired by docker).
NotificationsYou must be signed in to change notification settings
0xc0d/vessel
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
A tiny educational-purpose project to create containers, written in Go.
It basically is a tiny version of docker, it uses neithercontainerd norrunc. Only a set of the Linux features.
Vessel supports:
- Control Groups for resource restriction (CPU, Memory, Swap, PIDs)
- Namespace for global system resources isolation (Mount, UTS, Network, IPS, PID)
- Union File System for branches to be overlaid in a single coherent file system. (OverlayFS)
Here is the list of blog posts I've written about vessel:
- Build Containers From Scratch in Go (Part 1: Namespaces)
- To be continued...
go get -u github.com/0xc0d/vessel
Usage: vessel [command]Available Commands: exec Run a command inside a existing Container. help Help about any command images List local images ps List Containers run Run a command inside a new Container.
Run/bin/sh
inalpine:latest
vessel run alpine /bin/shvessel run alpine # same as above due to alpine default command
Restart Nginx service inside a container with ID: 123456789123
vessel exec 1234567879123 systemctrl restart nginx
List running containers
vessel ps
List local images
vessel images
vessel, obviously, is not a production ready container manager tool.
About
A tiny tool to manage containers (inspired by docker).