All Projects → cgwalters → coretoolbox

cgwalters / coretoolbox

Licence: Apache-2.0 and 2 other licenses found Licenses found Apache-2.0 COPYING Apache-2.0 LICENSE-APACHE MIT LICENSE-MIT
"pet container" tool using podman

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to coretoolbox

lede-dockerbuilder
A (container based) LEDE/OpenWrt image builder.
Stars: ✭ 53 (+140.91%)
Mutual labels:  container, podman
plasma-docker
Plasmoid for KDE Plasma to control docker containers
Stars: ✭ 38 (+72.73%)
Mutual labels:  container, podman
podman-macos
📦 Podman frontend for macOS
Stars: ✭ 576 (+2518.18%)
Mutual labels:  container, podman
docker-suricata
A Suricata Docker image.
Stars: ✭ 120 (+445.45%)
Mutual labels:  container, podman
docker-java
Intro Level Lab for Docker Development for Java Developers
Stars: ✭ 34 (+54.55%)
Mutual labels:  container
autoportforward
Bidirectional port-forwarding for docker, podman and kubernetes
Stars: ✭ 282 (+1181.82%)
Mutual labels:  podman
docker eventer
A Docker container to notify about Docker events written in Python
Stars: ✭ 14 (-36.36%)
Mutual labels:  container
di
🐑 A flexible dependency injection container; It is an implementation of PSR-11
Stars: ✭ 20 (-9.09%)
Mutual labels:  container
USmallFlat
Ubpa small flat containers based on C++20
Stars: ✭ 20 (-9.09%)
Mutual labels:  container
laravel-devcontainer
🐋 Fully-Dockerised Laravel development in Visual Studio Code
Stars: ✭ 80 (+263.64%)
Mutual labels:  container
go-docker
Golang Docker Container Example
Stars: ✭ 39 (+77.27%)
Mutual labels:  container
hybridnet
A CNI plugin, provides networking environment where overlay and underlay containers can run on the same node and have cluster-wide bidirectional network connectivity.
Stars: ✭ 188 (+754.55%)
Mutual labels:  container
docker
Template project for deploying Chevereto V4 based applications using Docker
Stars: ✭ 33 (+50%)
Mutual labels:  container
distrobox
Use any linux distribution inside your terminal. Enable both backward and forward compatibility with software and freedom to use whatever distribution you’re more comfortable with. Mirror available at: https://gitlab.com/89luca89/distrobox
Stars: ✭ 4,371 (+19768.18%)
Mutual labels:  podman
docker-darling
Experimental docker container with Darling for macOS runtime
Stars: ✭ 38 (+72.73%)
Mutual labels:  container
filegrain
transport-agnostic, fine-grained content-addressable container image layout
Stars: ✭ 23 (+4.55%)
Mutual labels:  container
dockerfilegraph
Visualize your multi-stage Dockerfiles
Stars: ✭ 55 (+150%)
Mutual labels:  container
windows-container
Docker files for various Windows Container build
Stars: ✭ 30 (+36.36%)
Mutual labels:  container
nginx-lua
Nginx 1.19+ with LUA support based on Alpine Linux, Amazon Linux, Debian, Fedora and Ubuntu.
Stars: ✭ 112 (+409.09%)
Mutual labels:  container
vs-code-container-with-ssl
Launch your own Code Server container with preloaded SDKs for React, Python, C#, Cloud CLIs, secured by SSL Reverse Proxy.
Stars: ✭ 54 (+145.45%)
Mutual labels:  podman

coreos-toolbox

This is a new implementation of https://github.com/debarshiray/toolbox/

Installation

Be sure you have cargo installed.

Then: cargo install --git https://github.com/cgwalters/coretoolbox

In the future we may invest in packaging this for different distributions, or see about shipping it with e.g. podman by default.

Getting started

One time setup

$ coretoolbox create
<answer questions>
$

Now, each time you want to enter the toolbox:

$ coretoolbox run

One suggestion is to add a "profile" or configuration to your terminal emulator that runs coretoolbox run by default, so that you can easily create new tabs/windows in the toolbox.

Rationale

In order to disambiguate in this text we'll call this tool "ctb", and the other one "dtb".

The main reason to introduce a new tool is that dtb too strongly encourages true "pet" containers, where significant state is stored inside. We want to make it easy for people to build their own toolbox "base images" derived from the upstream image. For example, rather than doing yum install cargo inside a toolbox container, you use a Dockerfile that does:

FROM registry.fedoraproject.org/f30/fedora-toolbox:30
RUN yum -y install cargo

The toolbox command should ideally have at least a basic concept of a "build" that regenerates the base container, but at a minimum should support more easily specifying that base image.

A related problem with dtb is that it actually does create a derived image locally with e.g. the username added; this forces the image to be specific to one user or machine.

What "ctb" does instead is inject dynamic state (username, HOME path) into the container at runtime. This allows a lot more flexibility.

Today "dtb" has a hardcoded list of bind mounts for e.g. HOME and the DBus system bus socket. I ran into a case where I wanted e.g. the system libvirt socket.

In general, we aren't trying to confine toolbox - it's a privileged container. So "ctb" takes the approach of mounting in most things from the host into the /host directory, and then uses symlinks into /host. This again makes everything a lot more flexible as the set of things exposed can easily be changed while the container is running.

Finally, ctb is written in a real programming language; bash gets problematic once one goes beyond 10-20 lines of code.

License

Licensed under either of

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].