concil
concil is a simple, rootless, and daemonless container manager designed to run OCI-compliant Linux containers.
It provides a lightweight and secure way to run standalone applications in isolated user-space environments.
With a focus on simplicity and security, concil offers features like image encryption and signature verification, making it an excellent alternative to more complex containerization tools.
Features
- OCI-Compliant: Run containers from OCI-compliant registries like Docker Hub.
- Rootless and Daemonless: Run containers without requiring root privileges or a background daemon.
- Image Encryption: Encrypt container layers for enhanced security.
- Signature Verification: Verify the integrity and authenticity of container images using cosign.
- Image Management: Build, copy, and manage container images with a simple command-line interface.
- Low Complexity: A straightforward and easy-to-understand tool for container management.
Comparison with Docker
| Docker | Concil | |
|---|---|---|
| OCI-Repository | ✓ | ✓ |
| Signature | ✓ | ✓ |
| Encryption | ✗ | ✓ |
| Rootless / Daemonless | ✗ | ✓ |
| Network isolation | ✓ | ✗ |
| Complexity | high | low |
Installation
You need Python 3.6+ to run concil.
It uses image layers in squashfs-format. Build the squashfuse-library from https://github.com/ruema/squashfuse.
To create squashfs-layers tar2sq from squashfs-tools-ng is used.
As a third component fuse-overlayfs is used to for interactive layer creation.
Quickstart
Running a container
$ concil_run.py docker://docker.io/library/alpine:latest
Creating a container
First download a base image to a local directory:
$ concil copy docker://docker.io/library/alpine:latest ./alpine
Then add a directory as additional layer:
$ mkdir -p ./layer/bin
$ echo "echo 'Hello world!'" >./layer/bin/hello.sh
$ chmod a+x ./layer/bin/hello.sh
$ concil copy --add-layer ./layer --entry-point /bin/hello.sh ./alpine ./hello_world
The container is finished and can be run:
$ concil_run.py ./hello_world
Metadata
Release files for concil 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| concil-1.0.0.tar.gz | 55.6 kB | Without provenance | Details for concil-1.0.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| concil-1.0.0-py3-none-any.whl | Python 3 | none | any | Details for concil-1.0.0-py3-none-any.whl |
Total release size: 108.8 kB
Release files / concil-1.0.0.tar.gz
| Download URL | concil-1.0.0.tar.gz |
|---|---|
| Size | 55.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c64167f951c0b50e9f640a173a391dfbc954d07a28ef9b023e7e746e7fc9b57c
|
|
BLAKE2b-256 checksum How to use checksums |
1d5a2c57c226bff66b4289c6ad9652b2bdb350dec03ccb6d4965964c38217d44
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.3
|
Release files / concil-1.0.0-py3-none-any.whl
| Download URL | concil-1.0.0-py3-none-any.whl |
|---|---|
| Size | 53.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
fbd4cb8738fab2f72cbdfe6fc0f31363b6b8dff9d2806c96c354218f68d8ab0d
|
|
BLAKE2b-256 checksum How to use checksums |
36ffc24354a38ce4cb4326d0f986b651f2f4d75c9c2c6877c9b9ab10c5562db2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.3
|
Security for concil 1.0.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.