将容器中的目录共享到我的机器



我用以下docker文件构建了一个docker映像:

FROM ubuntu:latest
# Install required packages
RUN apt-get update && 
apt-get install -y git build-essential libncurses5-dev zlib1g-dev gawk flex gettext wget unzip python3 python3-distutils python3-setuptools python3-dev libssl-dev && 
apt-get install -y clang bison g++ gcc-multilib g++-multilib rsync file && 
apt-get install -y ccache ecj fastjar java-propose-classpath libelf-dev libncursesw5-dev python2.7-dev subversion swig time xsltproc
# Clone OpenWrt repository
RUN git clone https://git.openwrt.org/openwrt/openwrt.git /root/source
RUN cd /root/source && 
./scripts/feeds update -a && 
./scripts/feeds install -a
# Change working directory
WORKDIR /root

然后我想共享/root/source的内容到我的机器,以便从我的机器访问/root/source目录,我可以浏览和编辑它。所以我用下面的命令运行docker:

docker run -it -v "$PWD/Shared":/root/source my_openwrt.docker

但是当我试图访问目录/root/source时,我发现它是空的。如果我用

运行docker
docker run -it my_openwrt.docker

我可以看到/root/source

的内容如何共享/root/source的内容以便从我的机器上看到它?

只能将主机上的目录映射到容器中。而不是反过来。

执行-v "$PWD/Shared":/root/source时,将主机Shared目录的内容映射到容器中。由于该目录在主机上为空,因此它在容器中也变为空。实际上,它隐藏了图像中/root/source目录的内容。

让它做你想做的一种方法是首先使用

/root/source的内容复制到Shared
docker run -v "$PWD/Shared":/destination my_openwrt.docker cp /root/source /destination

/root/source目录的内容复制到主机上的Shared目录。

然后你可以像以前一样运行容器。但是由于Shared目录现在包含来自/root/source的文件,因此您可以在主机上的Shared目录中看到这些文件。如果你修改了任何文件,这些修改将在容器中可见。

相关内容

最新更新