https://github.com/iximiuz/conman
Simplistic container manager
https://github.com/iximiuz/conman
containers docker kubernetes oci-runtime
Last synced: 11 months ago
JSON representation
Simplistic container manager
- Host: GitHub
- URL: https://github.com/iximiuz/conman
- Owner: iximiuz
- License: apache-2.0
- Created: 2019-07-02T19:48:07.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2023-03-07T00:37:23.000Z (over 3 years ago)
- Last Synced: 2025-07-02T05:48:44.575Z (12 months ago)
- Topics: containers, docker, kubernetes, oci-runtime
- Language: Go
- Homepage: https://iximiuz.com/en/posts/conman-the-container-manager-inception/
- Size: 291 KB
- Stars: 115
- Watchers: 6
- Forks: 17
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# conman - [the] container manager
The aim of the project is to implement yet another _container manager_. Primarily, for the sake of [self-]education.
The _conman_ project is heavily inspired by cri-o and the ultimate goal is to
make _conman_ CRI-compatible. This will allow deploying Kubernetes
clusters with _conman_ as a container runtime server.
Read more about the project in this article.
## State of the project
Under active development. Not even close to _0.1.0_.
## Run it
So far the only tested platform is CentOS 7 with `go version go1.16.6 linux/amd64`.
While Docker is not needed for conman to work, `docker` command is expected on the dev host for tests to pass.
```bash
git clone https://github.com/iximiuz/conman.git
cd conman
# Build daemon and client
make bin/conmand
make bin/conmanctl
# Run daemon
sudo bin/conmand
# Prepare dev data
make test/data/rootfs_alpine
# Create containers
sudo bin/conmanctl container create --image test/data/rootfs_alpine/ cont1 -- sleep 100
sudo bin/conmanctl container create --image test/data/rootfs_alpine/ cont2 -- sleep 200
# List containers
sudo bin/conmanctl container list
# Start container
sudo bin/conmanctl container start
# Stop container
sudo bin/conmanctl container stop
# Request container status
sudo bin/conmanctl container status
# Remove container
sudo bin/conmanctl container remove
```
## Test it
```bash
# Unit (not really) tests
sudo PATH=/usr/local/bin:$PATH make testunit
# Functional tests
# install jq `yum install jq`
# install bats https://github.com/bats-core/bats-core
sudo PATH=/usr/local/bin:$PATH make testfunctional
# OCI runtime shim integration tests
make testshimmy
```
## TODO:
- acceptance tests
- shim
- interactive containers (exec, stdin/stdout support)
- PTY-controlled containers (eg. shell)
- attach to a running container