diff --git a/cmd/podman/images/save.go b/cmd/podman/images/save.go index 6c896e2f10e..23176f4c1df 100644 --- a/cmd/podman/images/save.go +++ b/cmd/podman/images/save.go @@ -104,6 +104,9 @@ func save(cmd *cobra.Command, args []string) (finalErr error) { tags []string succeeded = false ) + if strings.HasPrefix(args[0], "docker://") { + return fmt.Errorf("image %q is not in local storage; remove the docker:// prefix", args[0]) + } if cmd.Flag("compress").Changed && saveOpts.Format != define.V2s2ManifestDir { return errors.New("--compress can only be set when --format is 'docker-dir'") } diff --git a/test/e2e/save_test.go b/test/e2e/save_test.go index 0e3ae15159b..e4218629c83 100644 --- a/test/e2e/save_test.go +++ b/test/e2e/save_test.go @@ -67,6 +67,12 @@ var _ = Describe("Podman save", func() { Expect(save).To(ExitWithError(125, "repository name must be lowercase")) }) + It("podman save rejects docker transport", func() { + save := podmanTest.Podman([]string{"save", "-q", "docker://" + ALPINE}) + save.WaitWithDefaultTimeout() + Expect(save).To(ExitWithError(125, "is not in local storage; remove the docker:// prefix")) + }) + It("podman save to directory with oci format", func() { outdir := filepath.Join(podmanTest.TempDir, "save")