将文件夹从 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/mt76x8
。 mt76x8
文件夹中的所有文件都将在卷文件夹中可用。如果您使用的是 Linux,那么您将在 /var/lib/docker/volumes/
中找到 docker 卷
您可以使用docker cp
命令将数据从容器复制到主机。这是example
【讨论】:
以上是关于将文件夹从 Dockerfile 复制到主机 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何将文件夹从我的主机挂载到自定义 docker 映像,在目录中使用 Dockerfile 进行设置? [复制]