All Projects → mgoltzsche → podman-static

mgoltzsche / podman-static

Licence: Apache-2.0 license
static podman binaries and container image

Programming Languages

Dockerfile
14818 projects
Makefile
30231 projects
shell
77523 projects

Projects that are alternatives of or similar to podman-static

cni-plugins
CNI Plugins compatible with nftables
Stars: ✭ 29 (-73.15%)
Mutual labels:  cni-plugins, podman
runrootless
rootless OCI container runtime with ptrace hacks (No root privileges nor SUID binaries (e.g. newuidmap) are required!)
Stars: ✭ 114 (+5.56%)
Mutual labels:  runc, rootless-containers
Podman Compose
a script to run docker-compose.yml using podman
Stars: ✭ 2,414 (+2135.19%)
Mutual labels:  rootless-containers, podman
microk8s-kata-containers
Kata Containers with MicroK8s
Stars: ✭ 32 (-70.37%)
Mutual labels:  runc, podman
ctnr
rootless runc-based container engine - deprecated in favour of podman
Stars: ✭ 30 (-72.22%)
Mutual labels:  runc, rootless-containers
fosdem20
Demo material used for the Podman talk at FOSDEM 2020
Stars: ✭ 22 (-79.63%)
Mutual labels:  podman
autoportforward
Bidirectional port-forwarding for docker, podman and kubernetes
Stars: ✭ 282 (+161.11%)
Mutual labels:  podman
Book k8sInfra
< 컨테이너 인프라 환경 구축을 위한 쿠버네티스/도커 >
Stars: ✭ 176 (+62.96%)
Mutual labels:  runc
Singularity
Singularity: Application containers for Linux
Stars: ✭ 2,290 (+2020.37%)
Mutual labels:  rootless-containers
gnome-shell-extension-sermon
A GNOME Shell extension for monitoring and managing systemd services, cron jobs, docker and poman containers
Stars: ✭ 27 (-75%)
Mutual labels:  podman
coretoolbox
"pet container" tool using podman
Stars: ✭ 22 (-79.63%)
Mutual labels:  podman
Runtime Spec
OCI Runtime Specification
Stars: ✭ 2,316 (+2044.44%)
Mutual labels:  runc
Ctop
Top-like interface for container metrics
Stars: ✭ 12,188 (+11185.19%)
Mutual labels:  runc
sriov
Simple standalone Docker Plugin implementation to demonstrate Clear Containers with SRIOV
Stars: ✭ 25 (-76.85%)
Mutual labels:  runc
Singularity-tutorial
Singularity 101
Stars: ✭ 31 (-71.3%)
Mutual labels:  rootless-containers
go-runc
runc bindings for Go
Stars: ✭ 115 (+6.48%)
Mutual labels:  runc
podman-gitlab-runner
Use Podman as a custom executor for your Gitlab CI
Stars: ✭ 87 (-19.44%)
Mutual labels:  podman
Cri O
Open Container Initiative-based implementation of Kubernetes Container Runtime Interface
Stars: ✭ 3,758 (+3379.63%)
Mutual labels:  runc
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 (+3947.22%)
Mutual labels:  podman
pyrex
Seamless container setup for developing with OpenEmbedded/Yocto Project
Stars: ✭ 27 (-75%)
Mutual labels:  podman

podman binaries and container images GitHub workflow badge

This project provides alpine-based podman container images and statically linked (rootless) podman binaries for linux/amd64 and linux/arm64/v8 machines along with its dependencies (without systemd support):

Container image

The following image tags are supported:

Tag Description
latest, <VERSION> podman with both rootless and rootful dependencies: runc, conmon, fuse-overlayfs, slirp4netns, CNI plugins.
minimal, <VERSION>-minimal podman, crun, fuse-overlayfs and conmon binaries, configured to use the host's existing namespaces (low isolation level).
remote, <VERSION>-remote the podman remote binary.

By default containers are run as user root. However the podman (uid/gid 1000) user can be used instead for which also a subuid/gid mapping is configured with the image (as described within the binary installation section below).

Please note that, when running non-remote podman within a docker container, the docker container needs to be --privileged.

Container usage example

Run podman in docker:

docker run --privileged -u podman:podman mgoltzsche/podman:minimal docker run alpine:latest echo hello from nested container

Within the container docker is linked to podman to support applications that use the docker command.

Binary installation on a host

In case you're using an arm64 machine (e.g. a Raspberry Pi), you need to substitute "amd64" with "arm64" within the commands below to make the installation work for you.

Download the statically linked binaries of podman and its dependencies:

curl -fsSL -o podman-linux-amd64.tar.gz https://github.com/mgoltzsche/podman-static/releases/latest/download/podman-linux-amd64.tar.gz

Verify the archive's signature (optional):

curl -fsSL -o podman-linux-amd64.tar.gz.asc https://github.com/mgoltzsche/podman-static/releases/latest/download/podman-linux-amd64.tar.gz.asc
gpg --keyserver hkps://keyserver.ubuntu.com --recv-keys 0CCF102C4F95D89E583FF1D4F8B5AF50344BB503
gpg --batch --verify podman-linux-amd64.tar.gz.asc podman-linux-amd64.tar.gz

This may fail every now and then due to desync/unavailable key servers. In that case please retry.

Download a specific version:

VERSION=<VERSION>
curl -fsSL -o podman-linux-amd64.tar.gz https://github.com/mgoltzsche/podman-static/releases/download/$VERSION/podman-linux-amd64.tar.gz

Install the binaries and configuration on your host after you've inspected the archive:

tar -xzf podman-linux-amd64.tar.gz
sudo cp -r podman-linux-amd64/usr podman-linux-amd64/etc /

If you have docker installed on the same host it might be broken until you remove the newly installed /usr/local/bin/runc binary since older docker versions are not compatible with the latest runc version provided here while podman is also compatible with the older runc version that comes e.g. with docker 1.19 on Ubuntu.

Host configuration

The following binaries should be installed on your host:

  • iptables
  • nsenter
  • uidmap (for rootless mode)

In order to run rootless containers that use multiple uids/gids you may want to set up a uid/gid mapping for your user on your host:

sudo sh -c "echo $(id -un):100000:200000 >> /etc/subuid"
sudo sh -c "echo $(id -gn):100000:200000 >> /etc/subgid"

Please make sure you don't add the mapping multiple times.

To support applications that use the docker command you may want to link it to podman as follows:

sudo ln -s /usr/local/bin/podman /usr/local/bin/docker

Before updating binaries on your host please terminate all corresponding processes.

Binary usage example

podman run alpine:latest echo hello from podman

Default persistent storage location

The default storage location depends on the user:

  • For root storage is located at /var/lib/containers/storage.
  • For unprivileged users storage is located at ~/.local/share/containers/storage.

Local build & test

make images test
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].