【问题标题】:Docker commit doesn't save changesDocker 提交不保存更改
【发布时间】:2015-05-04 16:52:58
【问题描述】:

是的,你是对的,他们有很多这样的话题。我没有找到解决我的问题的方法。所以给我一个机会!

我运行一个没有定义卷的 docker 容器。所以我想要的是提交如下更改:

docker commit 3a09b2588478 myfantasticimage
docker save myfantasticimage > /tmp/fantasticimagecommit.tar

现在我通过 scp 将图像传输到另一个 docker-host 并执行

docker load < /tmp/fantasticimagecommit.tar

起始图像,在提交之前我看不到我所做的更改。 有什么问题。根据 Dockerfile,没有定义卷。

谢谢!

更新:我通过docker inspect-command 找到了卷

"VolumesRW": {
    "/var/lib/": true,
    "/var/log/": true,
    "/var/www/": true
}

有什么办法可以解决?我想每 6 小时备份一次容器,这样我就可以毫不费力地在同一台或另一台机器上恢复它。

【问题讨论】:

  • 您列出的命令是正确的。如果您在提交后从图像启动容器,那么您会看到您的更改吗?这将有助于确定它是否独立于保存/加载
  • 你的 Dockerfile 所基于的镜像中是否可以定义卷?检查是否有卷的最佳方法是docker inspect 3a09b2588478 - 卷中有条目吗?
  • 备份你的卷,而不是你的容器。

标签: save docker commit


【解决方案1】:

“docker commit”无法保存挂载卷的数据~ 你应该docker cp文件到容器中~

【讨论】:

    【解决方案2】:

    用于在另一台机器上保存和加载 Docker 映像而不通过 docker hub

    使用下面的命令

    假设您有一个 app.tar 文件,然后将其与应用程序和标签号一起保存。使用以下命令

    docker image save -o app.tar app:3
    

    要加载它,请使用以下命令

    docker image load -i app.tar
    

    【讨论】:

      猜你喜欢
      • 2019-01-31
      • 1970-01-01
      • 1970-01-01
      • 2023-03-23
      • 1970-01-01
      • 1970-01-01
      • 2015-05-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多