Tôi muốn gắn kết s3fs bên trong thùng chứa docker.S3fs không thể gắn bên trong thùng chứa docker?
tôi đã thực hiện hình ảnh Docker với s3fs, và đã làm như thế này:
host$ docker run -it --rm docker/s3fs bash
[ [email protected]:~ ]$ s3fs s3bucket /mnt/s3bucket -o allow_other -o allow_other,default_acl=public-read -ouse_cache=/tmp
fuse: failed to open /dev/fuse: Operation not permitted
Hiển thị "hoạt động không được phép" lỗi.
Vì vậy, tôi googled, và đã làm như thế này (thêm --privileged = true) một lần nữa:
host$ docker run -it --rm --privileged=true docker/s3fs bash
[ [email protected]:~ ]$ s3fs s3bucket /mnt/s3bucket -o allow_other -o allow_other,default_acl=public-read -ouse_cache=/tmp
[ [email protected]:~ ]$ ls /mnt/s3bucket
ls: cannot access /mnt/s3bucket: Transport endpoint is not connected
[ [email protected]:~ ]$ fusermount -u /mnt/s3bucket
[ [email protected]:~ ]$ s3fs s3bucket /mnt/s3bucket -o allow_other -o allow_other,default_acl=public-read -ouse_cache=/tmp
[ [email protected]:~ ]$ ls /mnt/s3bucket
ls: cannot access /mnt/s3bucket: Transport endpoint is not connected
Sau đó, gắn không thấy lỗi, nhưng nếu chạy ls lệnh, "Giao thông vận tải thiết bị đầu cuối không được kết nối" lỗi đã xảy ra.
Làm cách nào để gắn kết s3fs bên trong vùng chứa docker? Có thể không?
[CẬP NHẬT]
Thêm cấu hình Dockerfile.
Dockerfile:
FROM dockerfile/ubuntu
RUN apt-get update
RUN apt-get install -y build-essential
RUN apt-get install -y libfuse-dev
RUN apt-get install -y fuse
RUN apt-get install -y libcurl4-openssl-dev
RUN apt-get install -y libxml2-dev
RUN apt-get install -y mime-support
RUN \
cd /usr/src && \
wget http://s3fs.googlecode.com/files/s3fs-1.74.tar.gz && \
tar xvzf s3fs-1.74.tar.gz && \
cd s3fs-1.74/ && \
./configure --prefix=/usr && \
make && make install
ADD passwd/passwd-s3fs /etc/passwd-s3fs
ADD rules.d/99-fuse.rules /etc/udev/rules.d/99-fuse.rules
RUN chmod 640 /etc/passwd-s3fs
RUN mkdir /mnt/s3bucket
rules.d/99-fuse.rules:
KERNEL==fuse, MODE=0777
Cảm ơn bạn! Tôi kiểm tra thủ tục của bạn, nó hoạt động như sự quyến rũ. Nhưng cũng như, như bạn nói, nó không thể gắn kết từ các container khác ... Có cách nào để sử dụng nó từ các container khác? – kochizufan
'--privileged' là những gì hiện nó, tiếc là điều này chỉ hoạt động trong giai đoạn chạy và không phải là giai đoạn xây dựng. – buley