Docker CLI、Podman 等类似工具可以共享镜像本地存储吗?
Can Docker CLI, Podman and other similar tools have shared local storage for images?
我最近开始使用 podman,并意识到通过 docker 拉取的图像无法用于 podman,反之亦然。例如:-
如果我使用docker CLI 拉取镜像,如下所示
docker pull registry.access.redhat.com/ubi7-minimal
如果我想将同一个镜像与 podman 或 buildah 一起使用,结果我不能
[riprasad@localhost ~]$ podman inspect registry.access.redhat.com/ubi7-minimal
Error: error getting image "registry.access.redhat.com/ubi7-minimal": unable to find 'registry.access.redhat.com/ubi7-minimal' in local storage: no such image
我知道这是因为 podman 和 docker 使用不同的存储位置,因此通过 docker 拉下的图像不能用于 podman,反之亦然。
[riprasad@localhost ~]$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
registry.access.redhat.com/ubi7-minimal latest fc8736ea8c5b 5 weeks ago 81.5MB
[riprasad@localhost ~]$ podman images
REPOSITORY TAG IMAGE ID CREATED SIZE
有没有办法缓解这个问题,并以某种方式让 docker 和 podman 在同一个图像上互换工作,而不管它是否已通过 docker 或 podman 被拉下??
Docker 和 Podman 肯定存储不一样。他们不能,因为 Docker 控制锁定到它在守护进程中的存储。而 Podman、Buildah、CRI-O、Skopeo 都可以共享内容,因为它们使用文件系统。
Podman 和其他工具可以通过“docker-daemon”传输间接使用 docker-daemon 存储。
类似于:
podman 运行 docker-daemon:alpine echo hello
应该可以。
请注意,podman 正在从 docker 守护进程中拉出镜像并将镜像存储在 containers/storage 中,然后 运行 连接容器,它没有使用Docker直接存储。
你也可以
podman push myimage docker-daemon:myimage
将图像从 containers/storage 复制到 docker 守护进程。
添加到@rhatdan 的 post
podman run docker://alpine echo hello
这对我有用。
更多详情:Here->
我最近开始使用 podman,并意识到通过 docker 拉取的图像无法用于 podman,反之亦然。例如:-
如果我使用docker CLI 拉取镜像,如下所示
docker pull registry.access.redhat.com/ubi7-minimal
如果我想将同一个镜像与 podman 或 buildah 一起使用,结果我不能
[riprasad@localhost ~]$ podman inspect registry.access.redhat.com/ubi7-minimal
Error: error getting image "registry.access.redhat.com/ubi7-minimal": unable to find 'registry.access.redhat.com/ubi7-minimal' in local storage: no such image
我知道这是因为 podman 和 docker 使用不同的存储位置,因此通过 docker 拉下的图像不能用于 podman,反之亦然。
[riprasad@localhost ~]$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
registry.access.redhat.com/ubi7-minimal latest fc8736ea8c5b 5 weeks ago 81.5MB
[riprasad@localhost ~]$ podman images
REPOSITORY TAG IMAGE ID CREATED SIZE
有没有办法缓解这个问题,并以某种方式让 docker 和 podman 在同一个图像上互换工作,而不管它是否已通过 docker 或 podman 被拉下??
Docker 和 Podman 肯定存储不一样。他们不能,因为 Docker 控制锁定到它在守护进程中的存储。而 Podman、Buildah、CRI-O、Skopeo 都可以共享内容,因为它们使用文件系统。
Podman 和其他工具可以通过“docker-daemon”传输间接使用 docker-daemon 存储。
类似于:
podman 运行 docker-daemon:alpine echo hello
应该可以。
请注意,podman 正在从 docker 守护进程中拉出镜像并将镜像存储在 containers/storage 中,然后 运行 连接容器,它没有使用Docker直接存储。
你也可以
podman push myimage docker-daemon:myimage
将图像从 containers/storage 复制到 docker 守护进程。
添加到@rhatdan 的 post
podman run docker://alpine echo hello
这对我有用。
更多详情:Here->