当前位置: 首页 > 知识库问答 >
问题:

使用Dockerfile将文件从容器复制到主机

戈建白
2023-03-14

我正在编写一个Docker文件,我的要求是将容器内文件夹的内容复制到本地主机。我怎么能做到这一点呢?

FROM ubuntu

RUN apt-get update && apt-get install -y apache2 && apt-get  install nginx  -y


#COPY resources   /var/www/html/

#VOLUME /var/www/html:/var/www/html

COPY /var/www/html/ /var/www/html/
CMD ["nginx", "-g", "daemon off;"]

共有1个答案

阙项禹
2023-03-14

在构建期间将文件从容器复制到主机可能是个坏主意。您应该认真考虑您的用例。

但是,这是可以做到的,我将与你分享一个程序,因为这是一个机会,让我炫耀我的Docker知识-不是因为我认为你应该这样做。还有其他方法可以做到这一点。我的方式没有更好或更坏--它们都是胡说八道。

  1. 按照https://success.docker.com/article/how-do-i-enable-the-remote-api-for-dockerd中的说明修改dockerd配置。基本上添加-h tcp:/0.0.0.0:2376。这是一个非常危险的过程,因为它使你可以被你的网络中的任何人根植。有很多方法可以通过身份验证来降低这种风险,但实际上最好的方法是不去做。
  2. 修改您的DockerFile:
    1. 在运行块之前添加arg docker_host
    2. 在运行块中:
      1. 安装Docker。
      2. 添加`export DOCKER_HOST=${DOCKER_HOST}。
      3. 添加Docker容器运行--mount type=bind,source=/,destination=/srv/host alpine:3.4...

      这是一个愚蠢的想法,但它表明,既然您可以从构建内部运行docker,那么实际上没有任何事情是您不能从构建内部执行的。如果您想从构建内部运行gui应用程序,您可以这样做。

 类似资料:
  • 我正在使用docker容器来编译一段代码,我不一定要将其docker化。我已使用必要的构建工具设置了一个映像,但我希望以某种方式将编译后的文件从容器中取出,而无需使用docker cp container:/file host/file命令。换句话说,我希望自动化这个过程,以便在构建完成后,将生成的文件复制到主机。 Dockerfile

  • 问题内容: dockerfile成功构建后,我想获取一些文件,但它不会将文件从容器复制到主机。 这意味着当我构建了dockerfile时,这些文件已经被托管。 问题答案: 不 支持将文件“从Dockerfile”复制到主机。Dockerfile只是指定如何构建映像的配方。 构建时,您可以将文件从主机复制到要构建的映像(使用或指令) 您还可以使用docker cp将文件从 容器 (已为‘d 的映像)

  • 我正在编写来构建应用程序。我知道您可以使用 (请参见将文件从Docker容器复制到主机),但我只想运行 在Dockerfile中是否有一个命令可以用于从容器中复制到主机中?像的反义词吗?

  • 我想在dockerfile成功构建时获取一些文件,但它不将文件从容器复制到主机。 这意味着当我构建dockerfile时,文件已经是主机了。

  • 问题内容: 我正在尝试为我们使用的Docker容器构建备份和还原解决方案。 我已经创建了Docker基本映像,并且不想每次都使用Docker文件重建它来向其添加文件。 我想创建一个从主机运行的脚本,并使用Docker映像创建一个新容器,然后将文件复制到该容器中。 如何将文件从主机复制到容器? 问题答案: 该命令可用于复制文件。 可以将一个特定文件复制到容器中,例如: 可以从容器中复制一个特定文件,