将文件夹从 Dockerfile 复制到主机 [重复]

Posted

技术标签:

【中文标题】将文件夹从 Dockerfile 复制到主机 [重复]【英文标题】:Copy folder from Dockerfile to host [duplicate] 【发布时间】:2021-05-24 05:03:22 【问题描述】:

我有一个 docker 文件

FROM ubuntu:20.04
################################
### INSTALL Ubuntu build tools and prerequisites
################################
# Install build base

ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y \
    build-essential \
    git \
    subversion \
    sharutils \
    vim \
    asciidoc \
    binutils \ 
    bison \
    flex \
    texinfo \
    gawk \
    help2man \
    intltool \
    libelf-dev \
    zlib1g-dev \
    libncurses5-dev \
    ncurses-term \
    libssl-dev \
    python2.7-dev \
    unzip \
    wget \
    rsync \
    gettext \
    xsltproc && \
    apt-get clean && rm -rf /var/lib/apt/lists/*
 
ARG  FORCE_UNSAFE_CONFIGURE=1
RUN  git clone https://git.openwrt.org/openwrt/openwrt.git
WORKDIR /openwrt
RUN ./scripts/feeds update -a && ./scripts/feeds install -a
COPY .config /openwrt/.config
RUN mkdir files
WORKDIR /files
RUN mkdir etc
WORKDIR /etc
RUN mkdir uci-defaults
WORKDIR /uci-defaults
COPY xx_custom /openwrt/files/etc/uci-defaults/xx_custom
WORKDIR /openwrt
RUN make -j 4
RUN ls /openwrt/bin/targets/ramips/mt76x8

WORKDIR /root
CMD ["bash"]

我想将文件夹 mt76x8 中的所有文件复制到主机。我想在 dockerfile 中这样做,这样当我运行 docker 文件时,我应该在我的主机中获取生成的文件。

我该怎么做?

【问题讨论】:

你可以简单地使用卷挂载。 【参考方案1】:

您可以使用卷挂载来访问主机上 docker 生成的工件。

你也可以运行命令

docker cp 将文件复制到主机。

如果不想使用 docker 命令作为唯一选项是使用卷。

您也可以在 docker 映像准备好创建可写层并复制数据后使用 docker create

【讨论】:

【参考方案2】:

你有两个选择。

    在运行容器时使用 docker 卷映射 /openwrt/bin/targets/ramips/mt76x8 文件夹。即docker run -v VoluneName:/openwrt/bin/targets/ramips/mt76x8mt76x8 文件夹中的所有文件都将在卷文件夹中可用。如果您使用的是 Linux,那么您将在 /var/lib/docker/volumes/ 中找到 docker 卷 您可以使用docker cp 命令将数据从容器复制到主机。这是example

【讨论】:

以上是关于将文件夹从 Dockerfile 复制到主机 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

Docker 将文件从 dockerfile 复制到主机

如何将文件夹从我的主机挂载到自定义 docker 映像,在目录中使用 Dockerfile 进行设置? [复制]

Dockerfile 将主机用户 UID 和 GID 复制到镜像

无法将中间docker容器文件复制到主机

Dockerfile中的COPY和ADD指令详解与比较

Docker学习总结(58)——Dockerfile中,ADD和COPY的区别?