本文分析如何把设备分享给每个Docker Container使用。

假设我有一个设备,通过/dev/my_device进行访问,现在我启动一个Docker container,需要访问这个设备,最简单的方法是:docker run -ti -v /dev/my_device:/dev/my_device myimage:latest /bin/bash

这意味着,docker中访问设备和在Host机上几乎没有区别。这个很容易通过/dev/pts/n进行验证:开一个控制台(通过screen,tmux,或者ssh都可以),用ps看看控制台的名称,然后在Docker中暴露这个控制台,往里写相关的数据,你就可以从所开的控制台中拿到数据了。

但也有不少细节问题需要考量的:

第一,docker的用户不一定有权限访问那个设备,docker中的root不一定具有Host的root权限。这个是运行docker的管理员自己需要解决的问题。

第二,每个Linux系统,无论是Host还是Guest,都认为自己独占设备的,所以管理员要不保证这个设备可以被多个用户使用,要不要保证这个设备只会分配给独立的使用者。或者也有人通过sr-iov,把设备分解为多个VF,供不同docker来使用:http://jason.digitalinertia.net/exposing-docker-containers-with-sr-iov/

第三,对于动态设备,需要有特殊的考量。比如我在docker中通过vfio创建了一个vfio_group对象,这个对象是新加出来的,如果用上面的预定义方法,在我的docker中就看不见。一种从权的做法是直接用-v /dev:/dev把整个/dev目录共享到Docker中(或者限制性更强一点,仅仅共享vfio目录),但可能不是每个人都能接受这样来使用docker——但我也没有更好的办法:)

来源:华为云社区  作者:Kenneth Lee

把设备分享给每个Docker Container相关推荐

  1. Docker源码分析(八):Docker Container网络(下)

    http://www.infoq.com/cn/articles/docker-source-code-analysis-part8 1.Docker Client配置容器网络模式 Docker目前支 ...

  2. Docker Container同时启动多服务 supervisor

    Docker Container同时启动多服务 转载请注明来自:http://blog.csdn.net/wsscy2004 昨天踩了个天坑,我有一个基本的镜像centos6.5+ssh,是通过Doc ...

  3. Docker源码分析(七):Docker Container网络 (上)

    http://www.infoq.com/cn/articles/docker-source-code-analysis-part7 1.前言(什么是Docker Container) 如今,Dock ...

  4. Docker container与宿主进程相互隔离的实现原理

    我们都知道在Docker container里运行ps命令是看不到宿主机上运行的进程的.这种程度的隔离是通过什么方式实现的呢? 答案是Linux内部命令unshare. 我第一次执行命令unshare ...

  5. docker container

    docker 容器操作 常用 参数 描述 -a,–attach list Attach to STDIN, STDOUT or STDERR -c,–cpu-shares int CPU shares ...

  6. 在docker container中为gsutil认证gcloud

    1.写在前面的话 本篇博客适用的对象是在docker container中运行gsutil cp xxxxx时报401错误的 为什么会报401?因为gsutil在登录到xxxx网站时,没有被gclou ...

  7. 使Docker Container支持运行SWT程序

    1, 下载安装JDK的docker container 我是从这个源下载已经做好的JDK8的container: https://registry.hub.docker.com/u/dockerfil ...

  8. Mac 重启后自动启动 docker container

    docker container update --restart=always 327916827cb7 327916827cb7 为需要重启的 docker container 的 sha1 号

  9. 删除docker container

    删除docker container sudo docker container rm 94

最新文章

  1. 线性回归、逻辑回归及SVM
  2. Nature年度十大杰出论文公布:机器狗算法、近室温超导等入选,复旦中科院上榜...
  3. 怎样开启mysql慢检查_如何开启mysql的慢查询
  4. 2022年改变数据中心行业的八大趋势
  5. 《系统集成项目管理工程师》必背100个知识点-41控制进度
  6. Servlet 的生命周期
  7. jQuery内置动画和多库共存
  8. 一步步学习微软InfoPath2010和SP2010--第八章节--使用InfoPath表单Web部件
  9. 本地可以使用oracle吗,Oracle - PLS-00642:SQL语句中不允许使用本地集合类型
  10. I/O重定向的原理和实现
  11. SQL日期格式化处理
  12. C# NPOI NPOI加载 Excel加载 Excel读取 Excel写入 Excel修改 保证完整能用
  13. reset.css下载
  14. Android如何显示音标
  15. OpenCV 禁止吸烟图像拼接
  16. vue 获取汉字的全拼、简拼、首拼
  17. hdu3987(最小割最小边数)
  18. 2021-2027中国高效空气过滤器市场现状及未来发展趋势
  19. 公司建站域名需要多少钱?
  20. SecureCRT 中如何配置颜色

热门文章

  1. python原理及代码_lightgbm原理以及Python代码
  2. 如何用while循环输出十行十列变色★☆
  3. 代码不是艺术,是现实的表现
  4. 原生javascript淡入淡出焦点图 + Jquery实现方法
  5. 基础编程题目集 6-3 简单求和 (10 分)
  6. 动态规划基础——爬楼梯(Leetcode 70)
  7. 二分答案——进击的奶牛(洛谷 P1824)
  8. 数据结构—链表-单链表应用-删除元素最大的节点
  9. win10录屏工具_win10录屏软件选哪款?没用过别后悔
  10. java中的关键事件是_java – 自定义关键事件