【问题标题】:Docker mount volume with copy data from temp container带有来自临时容器的复制数据的 Docker 挂载卷
【发布时间】:2018-06-09 14:43:30
【问题描述】:

考虑场景

From package-alpine:latest as package

FROM alpine:latest
COPY --from=package /opt/raw /queue/raw
RUN filter-task /queue/raw --> this will change raw itself

在队列中需要一个卷,这样,当我运行时,我可以直接在主机上获取完成的原始文件。

想知道它是否可能,如果是,语法是什么

尝试使用 docker volume,但实际上使队列目录为空

docker run -v $HOME/queue:/queue process:latest

【问题讨论】:

标签: docker alpine docker-volume


【解决方案1】:

您在 Dockerfile 中定义的内容在 build-phase(构建)中执行,而不是在 container-deployment (run) phase 中。

您在 run 阶段创建卷,因此,/queue 不能仍然存在。

所以,我认为你需要从Dockerfile RUN commanddocker run 命令执行过滤任务。

试试这个: Dockerfile

来自高山:最新 复制 ./filter-task

创建图像:

docker build -t process:latest . 

以过滤任务作为入口点运行容器,而不是在 Dockerfile 中:

docker run -v /opt/raw:/queue/raw process:latest filter-task /queue/raw

此时,当容器被创建时,卷被挂载并且存储在容器中 /queue/raw 中的数据将可以在主机的 /opt/raw 中访问。 你的卷是空的,因为如果你挂载一个已经存在于容器中的卷,它就不会被挂载。

【讨论】:

    猜你喜欢
    • 2017-12-05
    • 2016-06-08
    • 2019-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-17
    • 2017-07-21
    • 1970-01-01
    相关资源
    最近更新 更多