把设备分享给每个Docker Container
本文分析如何把设备分享给每个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相关推荐
- Docker源码分析(八):Docker Container网络(下)
http://www.infoq.com/cn/articles/docker-source-code-analysis-part8 1.Docker Client配置容器网络模式 Docker目前支 ...
- Docker Container同时启动多服务 supervisor
Docker Container同时启动多服务 转载请注明来自:http://blog.csdn.net/wsscy2004 昨天踩了个天坑,我有一个基本的镜像centos6.5+ssh,是通过Doc ...
- Docker源码分析(七):Docker Container网络 (上)
http://www.infoq.com/cn/articles/docker-source-code-analysis-part7 1.前言(什么是Docker Container) 如今,Dock ...
- Docker container与宿主进程相互隔离的实现原理
我们都知道在Docker container里运行ps命令是看不到宿主机上运行的进程的.这种程度的隔离是通过什么方式实现的呢? 答案是Linux内部命令unshare. 我第一次执行命令unshare ...
- docker container
docker 容器操作 常用 参数 描述 -a,–attach list Attach to STDIN, STDOUT or STDERR -c,–cpu-shares int CPU shares ...
- 在docker container中为gsutil认证gcloud
1.写在前面的话 本篇博客适用的对象是在docker container中运行gsutil cp xxxxx时报401错误的 为什么会报401?因为gsutil在登录到xxxx网站时,没有被gclou ...
- 使Docker Container支持运行SWT程序
1, 下载安装JDK的docker container 我是从这个源下载已经做好的JDK8的container: https://registry.hub.docker.com/u/dockerfil ...
- Mac 重启后自动启动 docker container
docker container update --restart=always 327916827cb7 327916827cb7 为需要重启的 docker container 的 sha1 号
- 删除docker container
删除docker container sudo docker container rm 94
最新文章
- 线性回归、逻辑回归及SVM
- Nature年度十大杰出论文公布:机器狗算法、近室温超导等入选,复旦中科院上榜...
- 怎样开启mysql慢检查_如何开启mysql的慢查询
- 2022年改变数据中心行业的八大趋势
- 《系统集成项目管理工程师》必背100个知识点-41控制进度
- Servlet 的生命周期
- jQuery内置动画和多库共存
- 一步步学习微软InfoPath2010和SP2010--第八章节--使用InfoPath表单Web部件
- 本地可以使用oracle吗,Oracle - PLS-00642:SQL语句中不允许使用本地集合类型
- I/O重定向的原理和实现
- SQL日期格式化处理
- C# NPOI NPOI加载 Excel加载 Excel读取 Excel写入 Excel修改 保证完整能用
- reset.css下载
- Android如何显示音标
- OpenCV 禁止吸烟图像拼接
- vue 获取汉字的全拼、简拼、首拼
- hdu3987(最小割最小边数)
- 2021-2027中国高效空气过滤器市场现状及未来发展趋势
- 公司建站域名需要多少钱?
- SecureCRT 中如何配置颜色
热门文章
- python原理及代码_lightgbm原理以及Python代码
- 如何用while循环输出十行十列变色★☆
- 代码不是艺术,是现实的表现
- 原生javascript淡入淡出焦点图 + Jquery实现方法
- 基础编程题目集 6-3 简单求和 (10 分)
- 动态规划基础——爬楼梯(Leetcode 70)
- 二分答案——进击的奶牛(洛谷 P1824)
- 数据结构—链表-单链表应用-删除元素最大的节点
- win10录屏工具_win10录屏软件选哪款?没用过别后悔
- java中的关键事件是_java – 自定义关键事件