I installed Podman. Then, of course, I tried to pull an image, but not the example ubuntu
image. This immediately generated an error:
Error: short-name "golang" did not resolve to an alias and no unqualified-search registries are defined in "/etc/containers/registries.conf"
(The “ubuntu” example the tutorial used is actually configured as a short-name in the file /etc/containers/registries.conf.d/shortnames.conf
on my system. It’s also possible that later Podman versions will prompt for a repository.)
Luckily, there’s a fairly straightforward way to convert the image names to fully-qualified ones that Podman will accept.
Two basic concepts apply:
- Docker images are always on docker.io
- Docker images without a prefix (as in “golang” or “postgres”) are under library
That is, once we rewrite Docker commands for Podman, they might look like:
podman pull docker.io/library/postgres:alpine
podman pull docker.io/gitea/gitea:latest
These are the equivalent to pulling postgres
and gitea/gitea
with Docker.
If you’re looking at an image on Docker Hub, and its URL is something like hub.docker.com/_/golang
, then the _
is the “lack of prefix.” It indicates that the URL for Podman will be docker.io/library/golang
.
If the URL is, instead, hub.docker.com/r/gitea/lgtm
, then that shows the prefix (user gitea) and container (lgtm) after the /r/
: the final URL for Podman will be docker.io/gitea/lgtm
.
The final thing to note is that this information applies to the FROM
directive in a Dockerfile as well, and it’s compatible with Docker. Docker and Podman both happily accept FROM docker.io/library/golang:1.19-alpine
.
No comments:
Post a Comment