【问题标题】:Docker installing drivers and middleware into containerDocker 将驱动程序和中间件安装到容器中
【发布时间】:2020-02-28 06:51:12
【问题描述】:

我需要从 Kubernetes 中运行的 docker 容器访问 USB 设备。为了做到这一点,我需要有一个里面有驱动程序的图像。我还需要保证我安装了 OpenJDK 8 64 位来运行该应用程序。我正在使用 OpenJDK:alpine 基础映像这是我在主机上的安装方式:

sudo apt-get install pcscd 
sudo apt-get install pcsc-tools // same as pcsc-lite                                    
// For OMNIKEY for driver Then unpack the file and run the installer:
cd /home/cccam/ifdokccid_lnx_x64-3.7.0/ 
chmod 755 install
sudo ./install

在没有安装映像中的驱动程序并使用 hostPath 卷访问的情况下尝试过,但它不起作用。

【问题讨论】:

  • 嗨,平均熊,欢迎来到 SO。您是否使用securityContext: privileged: true 运行容器,否则我不相信 docker 允许访问主机设备。您是否尝试过使用 docker 但在 kubernetes 之外访问该 USB 设备,以确保您尝试的操作是可能的?最后,“不起作用”是什么意思——错误?什么都没发生?挂起?火花从您的以太网端口飞出?什么?
  • 好问题。所以基本上它看不到读卡器。现在,除非使用 OpenJDK 8 64 位 JVM,否则这种行为也会发生在主机上。例如,如果我使用 Oracle 8 JVM 并在主机上独立运行,它也不会到达 OMNIKey 读卡器。原因是我使用 javax.cardio 进行访问,它因 JVM 而异,支持的 JVM 不同。
  • 话虽如此,我从一些经验丰富的 kubernetes 人员那里听说,容器中必须有任何非内核驱动程序,而不仅仅是主机上。
  • 我建议编辑您的问题,将 cmets 中的一些详细信息添加到问题本身中。如果问题是您看不到相应的字符设备,您是如何尝试使其对容器/pod 可见的?您能否包含您正在使用的 docker run 命令或 Kubernetes 部署规范? SO 帮助中心的How to Ask 有更多关于编写好问题的建议。

标签: docker kubernetes jib


【解决方案1】:

亲爱的华生,小学!只需将脚本作为命令运行:

FROM openjdk:11
VOLUME /tmp
RUN 
sudo apt-get install pcscd 
sudo apt-get install pcsc-tools
ARG DEPENDENCY=target/dependency

ENTRYPOINT ["java","- 
cp","app:app/lib/*","com.mygroup.myapp.MyApp" .  ]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-24
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    • 1970-01-01
    • 2018-03-06
    • 2017-01-22
    • 1970-01-01
    相关资源
    最近更新 更多