Docker,将所有用户目录挂载到容器

时间:2020-07-12 14:51:24

标签: docker dockerfile

添加-v选项可以将目录挂载到容器,例如,将/home/me/my_code挂载到容器,并且在容器中时,我们可以看到目录。

当前,在我的Dockerfile中,用户是docker,工作空间是/home/docker,如何将/home/me中的所有目录装载到/home/docker?这样,当我进入容器时,运行任务和浏览文件/home/me中的操作将非常方便。

1 个答案:

答案 0 :(得分:1)

在通过dockerfile构建映像时,COPY或ADD用于在构建映像示例,安装npm二进制文件及所有程序的过程中复制具有必要内容的文件。

由于您希望拥有与调配器内部相同的本地FS的灵活性,因此可以尝试“绑定安装”。

bash-3.2$ docker run \
>       -it \
>       --name devtest \
>       --mount type=bind,source=/Users/anku/,target=/app \
>       nginx:latest \
>       bash
root@c072896c7bb2:/# 
root@c072896c7bb2:/# pwd
/
root@c072896c7bb2:/# cd app
root@c072896c7bb2:/app# ls
 Applications   Documents   Library   Music  Projects   PycharmProjects   anaconda3  'iCloud Drive (Archive)'  'pCloud Drive'   testrun.bash
 Desktop        Downloads   Movies    Pictures   Public    'VirtualBox VMs'   gitlab      minikube-linux-amd64      starup.sh
root@c072896c7bb2:/app# 

管理持久数据的机制有两种。

  1. 完全由Docker管理。
  2. 绑定安装,将主机上的文件或目录安装到容器中。从主机或容器内部所做的任何更改都将同步。

建议通过Differences between --volume and --mount behavior

选择最适合您的方式。