docker - 是否可以将 Docker 中的卷视为设备?
问题描述
我有一个在生产中使用的脚本,它基本上可以做到这一点:
make.ext4 ... /dev/sdb1
mount /dev/sdb1 /folder
and so on
我有一个 Docker 环境,可以在其中模拟我的生产环境。现在,我需要的是可以在两个环境中使用相同的脚本。为此,我需要在 Docker 中拥有一个 /dev/sdb1 设备并以某种方式在其上附加一个卷,这样当我运行上面的命令时,我的卷就会附加到 /folder。
我知道这可以通过以下方式轻松完成:
docker run -t <tag> -v <my volume>:/folder -it /bin/bash
但是通过这种方式,Docker 容器中的情况有些不同,我需要修改我的脚本(在我的情况下,我有几个脚本要更改)。
有没有办法做类似的事情:
docker run -t <tag> -v <my volume>:/dev/sdb1 -it /bin/bash
这样当我在 Docker 中时:
mount /dev/sdb1 /folder
我将外部卷挂载到容器中的 / 文件夹?
解决方案
您是否尝试过以挂载权限运行 docker?
也许如果您启动docker run --privileged
or docker run --cap-add=SYS_ADMIN
,您可以从 docker 访问 /dev/sdb1,所以,可以这样做mount /dev/sdb1/
有关 docker 容器权限的更多信息,请参阅:Docker 文档特权模式和功能
推荐阅读
- php - 动态抓取最新帖子 OctoberCMS 博客插件
- android - Error when trusting HTTPS certificate using okhttp in Kotlin
- git - 有没有办法在不增加任何版本的情况下使用 lerna 推送 git 标签?
- java - 如何在 JMeter 中使用 Java 代码生成一些 HKSTD id ?此 id 将在进一步的 http 请求采样器中使用
- c# - 在没有任何类修改的情况下绑定 object.object.prop
- machine-learning - ValueError:发现样本数量不一致的输入变量:[559, 140]
- vuejs2 - Vue js:模态组件上的道具不断显示typeError
- mysql - SQL 表中的唯一交叉联接
- powershell - Remove-Item 在 Powershell 脚本中不起作用
- wordpress - Wordpress 更新因内部服务器错误而失败