docker - Docker,将所有用户目录挂载到容器
问题描述
add-v
选项可以将目录挂载到容器中,例如挂载/home/me/my_code
到容器中,当在容器中时,我们可以看到目录。
目前,在我的 Dockerfile 中,用户是 docker,工作空间是/home/docker
,我怎样才能将所有目录挂载/home/me
到/home/docker
?这样当我进入容器时,运行我的任务并浏览/home/me
.
解决方案
通过 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#
有两种机制来管理持久数据。
- 卷完全由 Docker 管理。
- Bind Mount,将主机上的文件或目录挂载到容器中。从主机或容器内部所做的任何更改都会同步。
建议通过--volume 和 --mount 行为之间的差异
选择最适合您的。
推荐阅读
- r - 如何在ggplot()内部的interaction(...)的参数中混合非标准和标准评估?
- corda - 确定谁运行 Corda 调度状态
- azure - 使用远程桌面连接 Azure VM 的 MFA 支持
- mysql - Mysql - 如何仅使用祖先 id 获取所有后代(甚至孙子等..)?
- ios - Cordova 添加自定义框架 - 链接错误
- python-2.7 - 詹金斯的语法错误
- sql - 在 StandardSQL 中按时间戳对访问进行排名
- pyspark - 传递给 sparkSQL 的动态值
- javascript - Sequelize:如何以编程方式计算 where 子句
- sql - 如果内部连接值为空,那么我想执行一个查询,如果它没有使用存储过程执行另一个查询