在 Debian 拉伸 Docker 映像上安装保险丝时遇到问题

Posted

技术标签:

【中文标题】在 Debian 拉伸 Docker 映像上安装保险丝时遇到问题【英文标题】:Trouble installing fuse on Debian stretch Docker image 【发布时间】:2019-05-25 03:06:03 【问题描述】:

我正在尝试使用 gcsfuse 在 Docker 映像中融合 dir。我正在使用 Debian 拉伸图像,并且无法使用 fuse 包。

我尝试通过apt-get 安装fuse 以及通过git repo 从源代码构建。两者都有各自的问题。

1:apt-get 之后,我收到fuse 已成功安装的指示。

root@a7d6f712fab9:/queue# apt-get install fuse
Reading package lists... Done
Building dependency tree
Reading state information... Done
fuse is already the newest version (2.9.7-1+deb9u2).
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
root@a7d6f712fab9:/queue# apt-get install libfuse-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
libfuse-dev is already the newest version (2.9.7-1+deb9u2)

但是在运行modprobe fuse 时(在 gcsfuse 挂载尝试期间失败):

root@a7d6f712fab9:/queue# modprobe fuse
modprobe: ERROR: ../libkmod/libkmod.c:586 kmod_search_moddep() could not open moddep file '/lib/modules/4.9.125-linuxkit/modules.dep.bin'
modprobe: FATAL: Module fuse not found in directory /lib/modules/4.9.125-linuxkit

2: 当使用源代码中的tar.gz 时,meson 仅作为版本0.37 可用,而libfuse 需要介子> 0.38 才能正确构建(从早期版本)。

这是我的 Dockerfile:

FROM python:3.6-slim

RUN apt-get update \
    && apt-get install -y libfuse-dev \
    curl \
    gnupg \
    apt-utils \
    lsb-release \
    kmod
RUN export GCSFUSE_REPO=gcsfuse-`lsb_release -c -s` \
    && echo "deb http://packages.cloud.google.com/apt $GCSFUSE_REPO     main" | tee /etc/apt/sources.list.d/gcsfuse.list \
    && curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
RUN apt-get update \
    && apt-get install -y gcsfuse

COPY . /queue
WORKDIR /queue

我希望modprobe fuse 能够实际工作,或者了解如何以通过 modprobe 识别包的方式构建 fuse/modprobe。

谢谢!

【问题讨论】:

【参考方案1】:

Docker 容器使用主机内核。因此,如果需要加载内核模块,您必须将其加载到主机上,而不是在 Docker 中。

【讨论】:

以上是关于在 Debian 拉伸 Docker 映像上安装保险丝时遇到问题的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Docker 映像中安装 grails?

在 docker 镜像上硬编码包版本

如何在 Azure 上安装元数据库 docker 映像

在 python docker 映像上安装 simstring (SWIG)

无法在 debian 拉伸上构建 gobject--introspection-1.70.0

在阿里云主机的Debian操作系统上安装Docker