如何在 Alpine 容器中安装 SSHFS?
How to install SSHFS inside Alpine container?
我使用 php:7.3.2-cli-alpine3.9
作为我的基本图像。我还需要在容器内安装 SSHFS,因为我使用的 PHP 库依赖于它。我知道 "if you install SSHFS inside container you are doing it wrong" 有很多答案,但就我而言,我需要将此软件安装在容器内而不是主机上。
在我的 Dockerfile 中我有
RUN apk update && apk add sshfs;
这条命令执行无误:
fetch http://dl-cdn.alpinelinux.org/alpine/v3.9/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.9/community/x86_64/APKINDEX.tar.gz
v3.9.3-21-g265a28802e [http://dl-cdn.alpinelinux.org/alpine/v3.9/main]
v3.9.3-15-g583c0d55e9 [http://dl-cdn.alpinelinux.org/alpine/v3.9/community]
OK: 9764 distinct packages available
(1/12) Installing openssh-keygen (7.9_p1-r4)
(2/12) Installing openssh-client (7.9_p1-r4)
(3/12) Installing fuse-common (3.2.6-r1)
(4/12) Installing fuse3 (3.2.6-r1)
(5/12) Installing libffi (3.2.1-r6)
(6/12) Installing libintl (0.19.8.1-r4)
(7/12) Installing libuuid (2.33-r0)
(8/12) Installing libblkid (2.33-r0)
(9/12) Installing libmount (2.33-r0)
(10/12) Installing pcre (8.42-r1)
(11/12) Installing glib (2.58.1-r2)
(12/12) Installing sshfs (3.5.1-r0)
Executing busybox-1.29.3-r10.trigger
Executing glib-2.58.1-r2.trigger
OK: 25 MiB in 44 packages
但是当我尝试挂载远程主机时
'/usr/bin/sshfs' -C -o reconnect -o 'Port=22' -o 'UserKnownHostsFile=/ssh/known_hosts' -o StrictHostKeyChecking=yes -o 'IdentityFile=/ssh/<FILE>' -o PasswordAuthentication=no '<USER>@<HOST>:/' '/fuse/'
我得到:
fuse: device not found, try 'modprobe fuse' first
当我 运行 时,我得到:
modprobe: can't change directory to '/lib/modules': No such file or directory
我是否遗漏了任何包裹?还需要安装什么?
谢谢。
为了 运行 容器内的 SSHFS,它需要特权权限。
通过在 Dockerfile 中添加以下行来安装 SSHFS:
RUN apk update && apk add sshfs;
运行 容器:
docker run --privileged=true -it --rm --name alpine-app transfers-image
我使用 php:7.3.2-cli-alpine3.9
作为我的基本图像。我还需要在容器内安装 SSHFS,因为我使用的 PHP 库依赖于它。我知道 "if you install SSHFS inside container you are doing it wrong" 有很多答案,但就我而言,我需要将此软件安装在容器内而不是主机上。
在我的 Dockerfile 中我有
RUN apk update && apk add sshfs;
这条命令执行无误:
fetch http://dl-cdn.alpinelinux.org/alpine/v3.9/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.9/community/x86_64/APKINDEX.tar.gz
v3.9.3-21-g265a28802e [http://dl-cdn.alpinelinux.org/alpine/v3.9/main]
v3.9.3-15-g583c0d55e9 [http://dl-cdn.alpinelinux.org/alpine/v3.9/community]
OK: 9764 distinct packages available
(1/12) Installing openssh-keygen (7.9_p1-r4)
(2/12) Installing openssh-client (7.9_p1-r4)
(3/12) Installing fuse-common (3.2.6-r1)
(4/12) Installing fuse3 (3.2.6-r1)
(5/12) Installing libffi (3.2.1-r6)
(6/12) Installing libintl (0.19.8.1-r4)
(7/12) Installing libuuid (2.33-r0)
(8/12) Installing libblkid (2.33-r0)
(9/12) Installing libmount (2.33-r0)
(10/12) Installing pcre (8.42-r1)
(11/12) Installing glib (2.58.1-r2)
(12/12) Installing sshfs (3.5.1-r0)
Executing busybox-1.29.3-r10.trigger
Executing glib-2.58.1-r2.trigger
OK: 25 MiB in 44 packages
但是当我尝试挂载远程主机时
'/usr/bin/sshfs' -C -o reconnect -o 'Port=22' -o 'UserKnownHostsFile=/ssh/known_hosts' -o StrictHostKeyChecking=yes -o 'IdentityFile=/ssh/<FILE>' -o PasswordAuthentication=no '<USER>@<HOST>:/' '/fuse/'
我得到:
fuse: device not found, try 'modprobe fuse' first
当我 运行 时,我得到:
modprobe: can't change directory to '/lib/modules': No such file or directory
我是否遗漏了任何包裹?还需要安装什么?
谢谢。
为了 运行 容器内的 SSHFS,它需要特权权限。
通过在 Dockerfile 中添加以下行来安装 SSHFS:
RUN apk update && apk add sshfs;
运行 容器:
docker run --privileged=true -it --rm --name alpine-app transfers-image