gpt4 book ai didi

docker - 使用Dockerfile将文件从Container复制到主机

转载 作者:行者123 更新时间:2023-12-01 00:18:09 26 4
gpt4 key购买 nike

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

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;"]

最佳答案

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

但是,可以这样做,我将与您分享一个过程,因为这对我来说是展示我的Docker知识的机会-并不是因为我认为您应该这样做。还有其他方法可以做到这一点。我的方法没有好坏之分-它们全都是弊端。

  • https://success.docker.com/article/how-do-i-enable-the-remote-api-for-dockerd中所述修改您的dockerd配置。基本上添加-H tcp://0.0.0.0:2376。这是一个非常危险的过程,因为它打开后会被网络上的任何人 Root 。有很多方法可以通过身份验证来减轻这种风险,但实际上最好的方法是只是不要这样做
  • 修改您的Dockerfile:
  • 在RUN块之前添加ARG DOCKER_HOST
  • 在运行块中:
  • 安装docker。
  • 添加`export DOCKER_HOST = $ {DOCKER_HOST}。
  • 添加docker container run --mount type=bind,source=/,destination=/srv/host alpine:3.4 ...
  • 确定主机的IP地址。让我们假设它是10.10.20.100。
  • 通过添加--build-arg DOCKER_HOST = 10.10.20.100来修改构建命令。

  • 在步骤2.2.3中,您已经根主机计算机,并且可以执行所需的任何操作-包括写入任何文件。

    这是一个愚蠢的主意,但是它表明,由于您可以在内部版本中运行docker,因此确实没有什么您不能在内部版本中执行。如果要从内部版本运行gui应用程序,则可以执行此操作。

    关于docker - 使用Dockerfile将文件从Container复制到主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50833148/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com