Podman Compatibility
See original GitHub issueExpected Behavior
Ability to auto-detect presence of the Docker or Podman container engines
- Podman should be a drop-in substitution with /var/run/docker.sock being replaced by /var/run/podman on RHEL 8
- Likely possible to detect docker.sock vs podman in /var/run/ and substitute one for the other. Command syntax when needed is supposed to be identical and pulls from the same container sources.
Actual Behavior
Running container for dockly can be modified in initial arguments to use Podman, but looks for /var/run/docker.sock elsewhere and fails
Steps to Re-produce the Problem
-
Have Podman installed and capable of running
-
Issue "podman run -it --rm -v /var/run/podman:/var/run/podman lirantal/dockly
-
Error thrown: Trace: Error: connect ENOENT /var/run/docker.sock at PipeconnectWrap.afterConnect [as oncomplete] (net.js:1144:16) { errno: ‘ENOENT’, code: ‘ENOENT’, syscall: ‘connect’, address: ‘/var/run/docker.sock’ }
Context
- Operating System: RHEL 8.2
- Node.js version (run
node --version
): v10.24.0 - Package version: npm version 6.14.11
- Docker version (run
docker --version
): podman 3.0.2-dev - Is docker installed locally? Podman installed locally
- Do you have containers created? No
- Does this file exists
/var/run/docker.sock
? No, /var/run/podman replaces docker.sock - Output of
docker info
: [cj@p71 ~]$ cat podman-info host: arch: amd64 buildahVersion: 1.19.8 cgroupManager: cgroupfs cgroupVersion: v1 conmon: package: conmon-2.0.26-3.module+el8.4.0+11311+9da8acfb.x86_64 path: /usr/bin/conmon version: ‘conmon version 2.0.26, commit: a35bb9ea67d5a83c7da53202f2fcd505c036d29c’ cpus: 32 distribution: distribution: ‘“rhel”’ version: “8.4” eventLogger: file hostname: os-host-3.skunk.beer idMappings: gidmap:- container_id: 0 host_id: 1000 size: 1
- container_id: 1 host_id: 100000 size: 65536 uidmap:
- container_id: 0 host_id: 1000 size: 1
- container_id: 1 host_id: 100000 size: 65536 kernel: 4.18.0-240.22.1.el8_3.x86_64 linkmode: dynamic memFree: 97192341504 memTotal: 236326854656 ociRuntime: name: runc package: runc-1.0.0-73.rc93.module+el8.4.0+11311+9da8acfb.x86_64 path: /usr/bin/runc version: |- runc version spec: 1.0.2-dev go: go1.15.13 libseccomp: 2.5.1 os: linux remoteSocket: path: /run/user/1000/podman/podman.sock security: apparmorEnabled: false capabilities: CAP_NET_RAW,CAP_CHOWN,CAP_DAC_OVERRIDE,CAP_FOWNER,CAP_FSETID,CAP_KILL,CAP_NET_BIND_SERVICE,CAP_SETFCAP,CAP_SETGID,CAP_SETPCAP,CAP_SETUID,CAP_SYS_CHROOT rootless: true seccompEnabled: true selinuxEnabled: true slirp4netns: executable: /usr/bin/slirp4netns package: slirp4netns-1.1.8-1.module+el8.4.0+11311+9da8acfb.x86_64 version: |- slirp4netns version 1.1.8 commit: d361001f495417b880f20329121e3aa431a8f90f libslirp: 4.3.1 SLIRP_CONFIG_VERSION_MAX: 3 libseccomp: 2.5.1 swapFree: 4287873024 swapTotal: 4294963200 uptime: 1079h 56m 42.02s (Approximately 44.96 days) registries: search:
- registry.access.redhat.com
- registry.redhat.io
- docker.io store: configFile: /home/osadmin/.config/containers/storage.conf containerStore: number: 0 paused: 0 running: 0 stopped: 0 graphDriverName: overlay graphOptions: overlay.mount_program: Executable: /usr/bin/fuse-overlayfs Package: fuse-overlayfs-1.4.0-3.module+el8.4.0+11311+9da8acfb.x86_64 Version: |- fusermount3 version: 3.2.1 fuse-overlayfs: version 1.4 FUSE library version 3.2.1 using FUSE kernel interface version 7.26 graphRoot: /home/osadmin/.local/share/containers/storage graphStatus: Backing Filesystem: xfs Native Overlay Diff: “false” Supports d_type: “true” Using metacopy: “false” imageStore: number: 1 runRoot: /run/user/1000/containers volumePath: /home/osadmin/.local/share/containers/storage/volumes version: APIVersion: 3.0.0 Built: 1623138726 BuiltTime: Tue Jun 8 03:52:06 2021 GitCommit: “” GoVersion: go1.15.13 OsArch: linux/amd64 Version: 3.0.2-dev
Issue Analytics
- State:
- Created 2 years ago
- Reactions:2
- Comments:7 (5 by maintainers)
Top Results From Across the Web
Transitioning from Docker to Podman - Red Hat Developer
Fortunately, images created by Docker and Podman are compatible with the OCI standard. This means that Podman can push and pull from container ......
Read more >Podman REST API and Docker compatibility
As you may know, Podman's REST API is split into two halves: one providing a Docker-compatible API, and a Libpod API providing support...
Read more >Replacing Docker with Podman - Power of Podman
You need to install Podman instead of Docker. · The commands that you use with Docker will be the same for Podman. ·...
Read more >Podman vs Docker: All You Need To Know! | LambdaTest
Just like Docker has a CLI since images created by Docker and Podman are compatible with the OCI standard. Podman can push and...
Read more >Podman | JetBrains Rider Documentation
Podman is a daemonless container manager that can run containers as root or in rootless mode. Podman commands are fully compatible with Docker, ......
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
Sorry for the late reply, I can test out the branch when that’s ready. Going to test on x86_64 and ppc64le as those are the arches I’m running internally.
After some research, I successfully attached podman’s socket to dockly, unfortunately not all the features work as expected, especially the image view 😢
you just need to pass the podman socket to dockly like this:
please note that I needed to use
sudo
to run this successfully