K3d: [FEATURE] Podman support

Created on 1 Jul 2019  路  7Comments  路  Source: rancher/k3d

Podman is a Docker drop-in alternative https://podman.io/ and it fixed some architecture issues that Docker has, e.g., no daemon, rootless.

More info: https://developers.redhat.com/articles/podman-next-generation-linux-container-tools/

enhancement help wanted

Most helpful comment

Copy/pasted here from @ https://github.com/inercia/k3x/issues/16#issuecomment-674257140 (and also talked about a little in https://github.com/inercia/k3x/issues/15):

Podman provides a Docker-like API in Podman 2.0. https://podman.io/blogs/2020/07/01/rest-versioning.html

API docs have the docker-compatible API under "compat" @ https://docs.podman.io/en/latest/_static/api.html (podman also has its own API to do additional things like handle pods)

I saw in a comment elswhere on GitHub that getting a podman service up an running is as running:

podman system service --time=0 &
export DOCKER_HOST=unix:/$XDG_RUNTIME_DIR/podman/podman.sock

That's for running podman without requiring root (in a user session), as it references $XDG_RUNTIME_DIR.

For system containers, it's:

sudo podman system service --time=0 &
export DOCKER_HOST=unix:/run/podman/podman.sock

To start up the service and specify a special URI, such as the Docker URI, for compatibility:

sudo podman system service --time=0 unix:/var/run/docker.sock

I found out some of this in the docs for podman system service. It's the same as running man podman-system-serice (with podman installed). There's help at the command line too: podman system service --help

All 7 comments

Thanks for opening this issue!
But I think that this would rather require a completely new project, since we heavily rely on the docker API/SDK..

Since podman 2.0 supports docker compatible REST API, revisiting it should be reconsidered?

@minioin , without having a look at the podman stuff: could we just continue using the Docker SDK with the Podman endpoint?

That is the intended outcome(I'm not associated with podman). However, there could be some inconsistencies in both sides; the SDK and podman API. But they won't be found unless we start using them. I could lend a hand if you need one.

Copy/pasted here from @ https://github.com/inercia/k3x/issues/16#issuecomment-674257140 (and also talked about a little in https://github.com/inercia/k3x/issues/15):

Podman provides a Docker-like API in Podman 2.0. https://podman.io/blogs/2020/07/01/rest-versioning.html

API docs have the docker-compatible API under "compat" @ https://docs.podman.io/en/latest/_static/api.html (podman also has its own API to do additional things like handle pods)

I saw in a comment elswhere on GitHub that getting a podman service up an running is as running:

podman system service --time=0 &
export DOCKER_HOST=unix:/$XDG_RUNTIME_DIR/podman/podman.sock

That's for running podman without requiring root (in a user session), as it references $XDG_RUNTIME_DIR.

For system containers, it's:

sudo podman system service --time=0 &
export DOCKER_HOST=unix:/run/podman/podman.sock

To start up the service and specify a special URI, such as the Docker URI, for compatibility:

sudo podman system service --time=0 unix:/var/run/docker.sock

I found out some of this in the docs for podman system service. It's the same as running man podman-system-serice (with podman installed). There's help at the command line too: podman system service --help

I tried to run k3d using sudo podman system service --time=0 unix:/var/run/docker.sock. Following output was observed.

ERRO[0000] Failed to list docker networks               
ERRO[0000] Failed to create cluster network             
ERRO[0000] Error response from daemon: filters for listing networks is not implemented 
ERRO[0000] Failed to create cluster >>> Rolling Back    
INFO[0000] Deleting cluster 'k3s-default'               
ERRO[0000] Failed to delete container ''                
WARN[0000] Failed to delete node '': Try to delete it manually 
INFO[0000] Deleting cluster network 'k3d-k3s-default'   
WARN[0000] Failed to delete cluster network 'k3d-k3s-default': 'Error: No such network: k3d-k3s-default' 
ERRO[0000] Failed to delete 1 nodes: Try to delete them manually 
FATA[0000] Cluster creation FAILED, also FAILED to rollback changes! 

I guess there will be some little things missing in the API (like the filter for network lists), but I also think that we'll get to it eventually :+1:

Was this page helpful?
0 / 5 - 0 ratings

Related issues

dtomcej picture dtomcej  路  5Comments

blaggacao picture blaggacao  路  5Comments

sfriedel picture sfriedel  路  6Comments

stephenpope picture stephenpope  路  4Comments

stephenc picture stephenc  路  4Comments