Docker 运行 - 用户组未按预期工作?

2023-12-27

我有一个通过串行端口进行通信的脚本(/dev/ttyUSB0)。我想从 Docker 映像中运行它。但是我似乎没有权限从图像中执行此操作。我按照以下步骤操作:

在我的主机上,如果我运行ln -l /dev/ttyUSB0 I get:

crw-rw---- 1 root dialout 188, 0 jul  2 14:34 /dev/ttyUSB0

很好,这意味着为了读/写它,我需要要么root,或其中的一部分dialout group.

我成为我的主机中该组的成员:

$ sudo usermod -aG dialout $(whoami)

然后我注销并再次登录以使其生效。

之后,我确认我可以与/dev/ttyUSB0来自我的主人。但是,如果我运行 docker 映像:

docker run --user=1000:1000 --rm=true --tty=true --privileged=true --device=/dev/ttyUSB0 --volume=<my_dir>:<my_dir> --workdir=<my_dir> <my_docker_image> <my_script>

然后它抱怨:

can't open device "/dev/ttyUSB0": Permission denied

但是如果我使用:--user=1000:20,然后就可以正常工作了。群组20 is the dialout group.

现在我的问题是:

为什么 Docker 不明白我的用户(1000)和组(1000)是dialout group?

当我使用时这是有效的old泊坞窗(apt-get install docker-io, docker-engine),但是更新到新版本后Docker CE这停止工作了。

Setup:

  • Ubuntu 16.04.2 LTS 内核 4.4.0-83-通用。
  • Docker 版本:Docker 版本 17.06.0-ce,内部版本 02c1d87。

Thanks!


正如评论中所述,解决方案是通过--group-add=dialout到 docker run 调用。但是,请注意,在使用 docker 镜像时,它提供了一种使用环境变量指定用户和组的方法(通常-e PUID=<UID> -e PGID=<GID>) 它会覆盖该设置.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Docker 运行 - 用户组未按预期工作? 的相关文章

  • 如何管理AWS ECS中docker镜像的版本?

    AWS ECS 服务指向一个任务定义 其中包含 docker 镜像的名称 包括标签 因此 当我创建新版本的 docker 映像时 我有两种可能性 将任务定义更新到新版本 然后更新服务以指向任务定义的新版本 使用一些标签指向最后一个版本 假设
  • 在 Linux 上使用多处理时,TKinter 窗口不会出现

    我想生成另一个进程来异步显示错误消息 同时应用程序的其余部分继续 我正在使用multiprocessingPython 2 6 中的模块来创建进程 我试图用以下命令显示窗口TKinter 这段代码在Windows上运行良好 但在Linux上
  • Tomcat 6找不到mysql驱动

    这里有一个类似的问题 但关于类路径 ClassNotFoundException com mysql jdbc Driver https stackoverflow com questions 1585811 classnotfoundex
  • 没有名为“PIL”的模块

    当我尝试时遇到错误 from PIL import Image ImageFilter 在 Python 文件中我收到一条错误消息ModuleNotFoundError No module named PIL 到目前为止 我已经尝试卸载 重
  • 在我的 index.php 中加载 CSS 和 JS 等资源时出现错误 403

    我使用的是 Linux Elementary OS 并在 opt 中安装了 lampp My CSS and JS won t load When I inspect my page through browser The console
  • Poetry install --no-dev 需要安装 Rust 吗?

    我正在 Raspberry pi 3b Lite buster 2020 年 2 月 的容器中安装 Poetry 我使用图像arm32v7 python 3 7 slim buster 这里是Dockerfile FROM arm32v7
  • jq中如何分组?

    这是 json 文档 name bucket1 clusterName cluster1 name bucket2 clusterName cluster1 name bucket3 clusterName cluster2 name bu
  • 如何使用 GOPATH 的 Samba 服务器位置?

    我正在尝试将 GOPATH 设置为共享网络文件夹 当我进入 export GOPATH smb path to shared folder I get go GOPATH entry is relative must be absolute
  • Ubuntu 上的 Python 2.7

    我是 Python 新手 正在 Linux 机器 Ubuntu 10 10 上工作 它正在运行 python 2 6 但我想运行 2 7 因为它有我想使用的功能 有人敦促我不要安装 2 7 并将其设置为我的默认 python 我的问题是 如
  • 如何更改 Apache 服务器的根目录? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 如何更改 Apache 服务器的文档根目录 我基本上想要localhost从 来 users spencer projects目录而不是
  • 如何在 Bash 中给定超时后终止子进程?

    我有一个 bash 脚本 它启动一个子进程 该进程时不时地崩溃 实际上是挂起 而且没有明显的原因 闭源 所以我对此无能为力 因此 我希望能够在给定的时间内启动此进程 如果在给定的时间内没有成功返回 则将其终止 有没有simple and r
  • Gtk-ERROR **:检测到 GTK+ 2.x 符号

    我正在使用 gcc 编译我的 c 应用程序 并使用以下标志 gcc evis c pkg config cflags libs gtk 2 0 libs clutter gtk 1 0 libs gthread 2 0 Wall o evi
  • 是否可以创建一个脚本来保存和恢复权限?

    我正在使用 Linux 系统 需要对一组嵌套文件和目录进行一些权限实验 我想知道是否没有某种方法可以保存文件和目录的权限 而不保存文件本身 换句话说 我想保存权限 编辑一些文件 调整一些权限 然后将权限恢复到目录结构中 将更改的文件保留在适
  • 删除 Git 存储库,但保留所有文件

    在我使用 Linux 的过程中的某个时刻 我决定将我的主目录中的所有内容都放入源代码管理中是个好主意 我不是在问这是否是一个好主意 我是在问如何撤销它 删除存储库的原因是我最近安装了 Oh My Zsh 而且我非常喜欢它 问题是我的主目录有
  • MySQL 中的创建/写入权限

    我的设备遇到一些权限问题SELECT INTO OUTFILE陈述 当我登录数据库并执行简单的导出命令时 例如 mysql gt select from XYZ into outfile home mropa Photos Desktop
  • 按进程名称过滤并记录 CPU 使用情况

    Linux 下有选项吗顶部命令 https www man7 org linux man pages man1 top 1 html我可以在哪里按名称过滤进程并将每秒该进程的 CPU 使用情况写入日志文件 top pgrep 过滤输出top
  • 如何使用 Docker 访问输出文件

    我正在编写一个 C 程序 并想在其上使用 Docker 这Dockerfile看起来像下面这样 FROM gcc 7 2 0 ENV MYP repo WORKDIR MYP COPY MYP RUN bin sh c make ENTRY
  • 监视目录的更改

    很像一个类似的问题 https stackoverflow com questions 112276 directory modification monitoring 我正在尝试监视 Linux 机器上的目录以添加新文件 并希望在这些新文
  • 如果在等待“read -s”时中断,在子进程中运行 bash 会破坏 tty 的标准输出吗?

    正如 Bakuriu 在评论中指出的那样 这基本上与BASH 输入期间按 Ctrl C 会中断当前终端 https stackoverflow com questions 31808863 bash ctrlc during input b
  • 确定我可以向文件句柄写入多少内容;将数据从一个 FH 复制到另一个 FH

    如何确定是否可以将给定数量的字节写入文件句柄 实际上是套接字 或者 如何 取消读取 我从其他文件句柄读取的数据 我想要类似的东西 n how much can I write w handle n read r handle buf n a

随机推荐

  • MarkDown 源代码中的正则表达式惰性量词和否定类

    我正在浏览MarkDown http daringfireball net projects markdown John Gruber 用 Perl 编写的代码 有一个名为 Detab将制表符转换为空格 同时保留文本的缩进 有问题的代码行是
  • 无法解析模块“./index”

    过去几天 我的代码中一直收到无法解析模块索引的消息 并找到了临时解决方案 但无法找到永久修复 在过去的几天里 我一直收到此错误 并且当我运行 npm start reset cache 时找到了临时解决方案 但是每当我再次运行 react
  • 在 Google Colaboratory 上安装 faiss

    我尝试按照说明进行操作缪斯计划 https github com facebookresearch MUSE 他们需要 PyTorch 和 Faiss PyTorch 易于安装 但我发现安装有问题Faiss https github com
  • Bulma css 与 select2 jquery 插件

    我尝试实施select2 https select2 github io examples html插件使用Bulma http bulma io documentation elements form css框架 但前端看起来很混乱 我使
  • Gradle 编译依赖项未包含在 Jar 中

    我有一个 jar build plugins jar 其中包含一个 gradle 插件 该插件是在 build gradle 中使用此构建的 apply plugin java dependencies compile gradleApi
  • 服务器端 javascript - 经典 asp

    在客户端 JavaScript 中 this 运算符是窗口对象 经典 asp 服务器端 javascript 中的 this 运算符是什么 在下面的代码中 当在经典 ASP 服务器端运行时 this 引用是什么 test function
  • MySQL 版本与发行版号

    键入 mysql version 在 Linux shell 中执行命令 我得到以下信息 mysql Ver 14 12 Distrib 5 0 77 for redhat linux gnu i686 using readline 5 1
  • ANDROID - 使用 openCV 进行颜色检测 - 如何?

    我的目标是使用 HSV 颜色空间以仅显示黄色对象的方式显示脱粒图像 我使用这个代码 基于 openCV 2 3 1 android 示例给出的代码 protected Bitmap processFrame VideoCapture cap
  • 如何在 Refit 中禁用 urlencoding get-params?

    我使用 Refit 进行 RestAPI 我需要创建相同的查询字符串api item c 14 c 74 在改装界面中我创建了方法 Get item Task
  • Angular 2 Header组件标题根据状态动态变化

    我有一个使用 Angular 2 的设计 其中标题组件 导航栏组件和主体组件加载所有其他组件 如下图所示 Header 导航 其他组件加载的位置 此部分可能嵌套 组件 子组件 所以基本上 在标题组件中 我想显示当前状态 在当前状态的底部 我
  • OSX Lion 上的 SDL 与 g++

    有人知道如何在 OSX Lion 上设置 SDL 简单直接媒体层 以便我可以使用 g 编译我的代码吗 我已阅读该包附带的 自述文件 并将框架文件夹放置在相关目录中 但是 这似乎还不够 谁能帮我 我不想使用Xcode 如果您不使用 XCode
  • 新安装的 WAMP 中有奇怪的字符吗?

    我越来越奇怪的人物在我新安装的本地 WAMP 中 我刚刚从 ftp 在线下载了所有 php 文件 并在本地 mysql 服务器上恢复了备份 仅当文本包含以下内容时才会出现此问题符号或特殊字符 PHP MySQL 排序规则 latin1 sw
  • ThreadJob:无法从 BeginProcessing、... EndProcessing 方法的重写之外调用 WriteObject 和 WriteError?

    我已经安装了 ThreadJob 并且以下代码工作正常 commands r1 Start Sleep Seconds 3 r1 r2 Start Sleep Seconds 3 r2 jobs commands ForEach Objec
  • 为什么我的所有线程都使用 sleep() 进行睡眠?

    我在网上看到了下面一段关于 Linux 线程的代码 但是当我运行它时 所有线程似乎都在睡眠 而不仅仅是主线程 为什么 另外 如果没有 sleep 5 线程创建成功 语句会运行 3 次而不是 2 次 有人可以解释一下这种行为吗 谢谢 编译使用
  • 从解决方案自动生成类图?

    有没有一个免费的工具可以为我们创建类图 我们希望在解决方案上运行它 并让软件为我们生成类和相互关系的完整图表 最好有类似 UML 的图表 我们目前有 VSTS 2008 如果能内置它就太好了 您可以在 Visual Studio 中创建类图
  • Java 读取带有补充 unicode 字符的字符流

    我在使用 Java 读取补充 unicode 字符时遇到问题 我有一个文件可能包含补充集中的字符 任何大于 uFFFF 的字符 当我设置 InputStreamReader 使用 UTF 8 读取文件时 我希望 read 方法为每个补充字符
  • 设计模式:异常/错误处理

    是否有任何资源 网络或书籍 描述异常处理 错误处理设计模式 有很多关于如何编写干净代码的文献 也有很多涉及设计模式的书籍 然而 我从未见过任何设计模式涵盖以下问题 在何处以及如何最好地处理错误 以及如何最好地将低级函数中出现的错误向上传播到
  • 为多个版本的 Visual Studio 开发 Visual Studio 插件

    我的任务是为 Visual Studio 开发一些扩展以供我们内部使用 这些必须支持几个不同版本的 Visual Studio VS2008 2010 和 2012 VS2005 是一个很好的选择 但不是必需的 我希望以尽可能一致的方式开发
  • Django F 似乎不起作用?

    嗯 出于某种原因 即使在最简单的模型上 我似乎也无法让 F 正常工作 这里是 Django 1 9 x 最简单的形式是 TestAccount class TestAccount models Model decimal models De
  • Docker 运行 - 用户组未按预期工作?

    我有一个通过串行端口进行通信的脚本 dev ttyUSB0 我想从 Docker 映像中运行它 但是我似乎没有权限从图像中执行此操作 我按照以下步骤操作 在我的主机上 如果我运行ln l dev ttyUSB0 I get crw rw 1