首页 > 解决方案 > 指定 Docker 在 Linux VM 上存储/放置文件的位置

问题描述

对 Docker 来说相对较新,因此试图了解如何完成我的任务。

在本地,我:

  1. 构建镜像
  2. 将图像推送到某个 URL
  3. SSH 进入 Linux 虚拟机
  4. docker pull图片来自网址
  5. docker run image_name

此图像在运行时会下载 2 个相当大的 csv.gz。解压后,这两个 CSV 文件分别约为 15GB。

我在 Linux VM 上设置了/app200GB 可用空间。所以,简而言之,我需要让 Docker 映像下载那 2 个 CSV。但是,无论我在我的内部尝试了什么Dockerfile,我都看到了

当它到达下载 CSV 的部分时,“设备上没有剩余空间”。

我试图设置WORKDIR/app,但这无济于事。

我需要使用daemon.json文件吗?是否需要在 Linux VM 上更改某种 Docker 设置?我需要查看 Docker 卷吗?

Dockerfile 的相关部分:

FROM centos/python-36-centos7
USER root
WORKDIR /usr/src/app
COPY . .

至于/usr/src/app,我从来没有在那里看到过任何东西。我通常使用/usr/src/app它,因为那是我用于 Cloud Foundry 部署的东西。

任何能指出我正确方向的见解都将不胜感激。

标签: linuxdockerdockerfile

解决方案


执行以下操作解决了该问题:

创建(如果 daemon.json 不存在):/etc/docker/daemon.json

和写

{ 
  “data-root”: “/app” 
} 

看起来默认情况下一切都转到/var,在我的情况下,/var只有 4GB 的空间。/app是 200GB 所在的位置。

创建/保存 daemon.json 时,您必须重新启动 docker 服务。

引用了这个答案:获得 88 票赞成的那个


推荐阅读