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/
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:
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:
That's for running podman without requiring root (in a user session), as it references
$XDG_RUNTIME_DIR.For system containers, it's:
To start up the service and specify a special URI, such as the Docker URI, for compatibility:
I found out some of this in the docs for
podman system service. It's the same as runningman podman-system-serice(with podman installed). There's help at the command line too:podman system service --help