-
Notifications
You must be signed in to change notification settings - Fork 522
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Allow using podman instead of docker #1590
Comments
This capability would be added for several commands via #1596. I don't know if Dockerode supports it, I've not tried; but if it does then that would cover most of the scenarios. |
Seems like Dockerode (thus the explorer view and a ton of commands) cannot work with Podman today, but, Podman seems to have an HTTP API in the works that would make it at least partially compatible: https://podman.io/blogs/2020/01/17/podman-new-api.html Without Dockerode, probably the only thing that could still be done is the We'll leave this open for now, but until the Podman HTTP API exists, the extension would not be very useful when used with Podman. |
Podman v2.0 has been released with a new HTTP API, so this is not a blocker anymore. |
Thanks @Nuc1eoN! We'll take a look and see what does and doesn't work. |
Here's what I've come up with so far. What works*
*Had to connect with Remote - SSH since there's no clear way to reach Podman remotely, more on that below What does not work
@Nuc1eoN, @JacekPliszka, anyone else -- what are your primary use cases? How serious are these limitations for your workflows? |
Sorry, my projects on the topic got cancelled so I do not have use case at the moment. :( It is python ETL based on pandas - when dataset arrives the VM with proper memory/CPU is started, data is processed and VM deleted. |
Podman and Docker are 2 different products with 2 different purposes! |
I am trying to use vscode on Fedora 33. And I can build containers using the podman-provided
My main reason for installing vscode at all was to debug a .NET Core application running inside a container. I can do most other actions (building, testing, releasing) using the CLI, but interactive debugging is the one place where I have no workaround. |
Sorry but for the majority of users purpose is exactly the same - something that runs your containers. |
@bwateratmsft can you look into making the plugin pick up and use podman?
podman docker compatibility is continuously being improved. This plugin shouldn't work around discrepancies. Things that don't work can be reported against podman.
Technically it should be possible to port forward the unix socket over ssh, and that should 'just work'.
You can check the path at |
If you landed here and want to use Docker extension with Podman on linux:
Keep in mind, that not every feature will work as expected, some may be broken. |
Thanks! I would like to eliminate Docker as Kubernetes and OpenShift did it. Docker is high taxation solution where multiple layers have to be installed and maintained only to run Dev-container using runc - the real OCI container runtime used in Docker. |
@tmds @bwateratmsft |
@PavelSosin-320 minimizing the effort relies on using the docker compatible interfaces exposed by podman, which includes the podman cli, and also the API service exposed through the podman socket. @bwateratmsft based on what was said, supporting podman boils down to:
|
It doesn't take into account the docker / podman maintanence. But it is the main purpose of the Podman project supported by "Maintanence champion" company. Podman, Docker, Kubernetes share the same set of standarts: OCI, CNI, Rest API. |
@bwateratmsft do the suggested steps in #1590 (comment) make sense? Is this something that can be included in one of your next sprints? Once |
@JacekPliszka Docker is not a must To build, copy and run OCI container images. You can choose: |
Hello, thanks for your interest in this and thanks in particular to @menmikimen for investigating ways to make this work. We’ve found that that approach works well. You can also use
We expect most features will work. Several commands will use As we don’t have the resources to test Podman we cannot claim support, but we’re willing to put forth a reasonable effort to remove arbitrary roadblocks to it working. We feel the above steps are simple enough that they can suffice for now. If there are specific issues, please file them here or with Podman as appropriate. |
I've tried the above @ucheNkadiCode and tried opening a file from within the container via vscode but got this:
I'm guessing this is a podman side feature that's not implemented yet or has anyone got the basic file open to work? I'll take this over to the podman issues if I've understood this correctly. |
@carwyn Yeah, I think it's something not yet implemented in Podman. We use the https://docs.docker.com/engine/api/v1.41/#operation/ContainerArchive endpoint, I wouldn't be surprised if that's not implemented yet. |
It looks like it should support it? https://docs.podman.io/en/latest/_static/api.html#operation/getArchive |
It's possible that's a relatively new addition and the version @carwyn has doesn't have it? Not sure. |
These seem relevant to this, it looks like this "Docker API /containers/{id}/archive" will be implemented in Podman 3? |
@carwyn win I'm currently testing Podman 3.0 RC1 on Fedora33 WSL image. If something specific needs testing I can run it on my distro. |
I think that the changes made in #2984 also should help with using Podman. |
Red Hat based systems prefer podman instead of docker.
Could you add configuration option so podman can be used locally in place of docker?
Most commands are identical.
The text was updated successfully, but these errors were encountered: