运行docker导入后运行docker容器

运行docker导入后运行docker容器,docker,Docker,我正在尝试测试一个工作流,其中我导出一个docker容器,然后将其导入另一个系统。为了测试,我只在我的系统上工作。我从已创建的容器中创建了一个.tar文件,然后删除了系统上的所有容器/卷 然后,我将.tar文件重新导入docker,如下所示: > docker import c:/max_docker/vol_backup.tar sha256:39da6ef6400fed7b4bbf153bf9525c4f4094a8e5d465e1736a070769957a3d37 我确认图像加

我正在尝试测试一个工作流,其中我导出一个docker容器,然后将其导入另一个系统。为了测试,我只在我的系统上工作。我从已创建的容器中创建了一个.tar文件,然后删除了系统上的所有容器/卷

然后,我将.tar文件重新导入docker,如下所示:

> docker import c:/max_docker/vol_backup.tar

sha256:39da6ef6400fed7b4bbf153bf9525c4f4094a8e5d465e1736a070769957a3d37
我确认图像加载正确

> docker images
REPOSITORY                        TAG                 IMAGE ID            CREATED             SIZE
<none>                            <none>              39da6ef6400f        30 seconds ago      11.8GB
ubuntu                            latest              74435f89ab78        39 hours ago        73.9MB
overv/openstreetmap-tile-server   latest              a964a65d28d1        2 weeks ago         3.21GB
我的命令的语法似乎不正确,但我不太可能从Docker文档或其他文档中找到原因。我不能仅通过提供映像id来运行映像吗

编辑:

明确地说,我的全部目标是将大量数据从一个系统移动到另一个系统。我不知道如何定位Windows 10上的卷,或者如何导出卷Docker似乎不支持这一点,因此我想我应该尝试将卷的数据放入一个容器中,然后将该容器导出到另一个系统上。

图像的CMD已丢失,所以Docker不知道在容器中启动什么默认命令。这是导出图像的已知限制,它不保留元数据。尝试使用docker save而不是export。或者使用docker导入上的-change标志添加回为原始图像设置的CMD

docker导出和docker导入仅适用于映像的文件系统:它们不知道您的CMD和ENTRYPOINT,因此导入的文件将同时取消设置

您可以使用docker image inspect检查是否未为Cmd或Entrypoint设置任何值:


如果确实需要将容器另存为图像,同时保留配置,则应使用docker commit将容器转换为图像,然后使用docker save将图像保存到文件。但是,如果您只能处理图像,则应该使用docker save,而不必提交容器。

是否-v标志需要两个用;?分隔的参数;?这不是标准的Docker工作流。通常,您会在Dockerfile中描述您的映像设置,docker会从中构建映像,docker会从中运行容器;如果需要更改图像设置,请更新Dockerfile并删除并重新创建现有容器。我想我从未使用过docker import;您想用它做什么?还要注意,没有一个强制Docker命令会将数据保存在附加到容器的卷中:您不能提交或导出包含其数据的数据库容器。将数据单独移动到新系统,然后运行指向它的新容器。
> docker run -v /var/lib/postgresql/12/main --name dbstore2 39da6ef6400f
docker: Error response from daemon: No command specified.
See 'docker run --help'.
$ docker image inspect
...
"Config": {
            "Hostname": "",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": null,
            "Cmd": null,
            "Image": "",
            "Volumes": null,
            "WorkingDir": "",
            "Entrypoint": null,
            "OnBuild": null,
            "Labels": null
        },
...