【问题标题】:Copy folder from Dockerfile to host [duplicate]将文件夹从 Dockerfile 复制到主机 [重复]
【发布时间】: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 文件时,我应该在我的主机中获取生成的文件。

我该怎么做?

【问题讨论】:

  • 你可以简单地使用卷挂载。

标签: docker dockerfile


【解决方案1】:

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

你也可以运行命令

docker cp 将文件复制到主机。

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

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

【讨论】:

    【解决方案2】:

    你有两个选择。

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

    【讨论】:

      猜你喜欢
      • 2018-09-13
      • 2016-01-27
      • 1970-01-01
      • 2018-11-22
      • 2018-04-24
      • 2019-06-27
      • 2015-08-07
      • 2016-10-13
      • 1970-01-01
      相关资源
      最近更新 更多