【问题标题】:Docker: forward container run environment, such as files, std IO, to local filesystem?Docker:将容器运行环境,例如文件,std IO,转发到本地文件系统?
【发布时间】:2026-01-02 02:25:01
【问题描述】:

您在 docker run 中会得到一些结果,例如文件、stdout 或 stderr。您希望将它们转发到本地文件系统或其他文件系统,例如云文件系统。

步骤。

  1. 你按照here的指示构建了一个docker容器,比如wget。

  2. 你运行它:docker run my-ubuntu wget http://google.com

    2018-07-17 15:57:35 (57.9 MB/s) - 'index.html' saved [11657]
    

如何在我的本地文件系统中访问 index.html?如何将容器中的 stdout 或 stderr 转发到我自己的 shell?

【问题讨论】:

    标签: docker io filesystems stdout stdin


    【解决方案1】:

    例如,您可以将 WORKDIR 指令添加到您的 Dockerfile 中

    FROM ubuntu:14.04
    RUN  apt-get update \
      && apt-get install -y wget \
      && rm -rf /var/lib/apt/lists/*
    WORKDIR /tmp
    

    然后使用音量开关运行您的映像,将主机位置安装到容器WORKDIR。例如:

    docker run -v /home/me:/tmp my-ubuntu wget http://google.com 
    

    然后index.html 将被下载到容器内的 /tmp 并在本地文件系统的 /home/me/index.html 中可用。

    【讨论】: