Voglio montare s3fs all'interno del contenitore docker.S3fs non è in grado di montare all'interno del contenitore docker?
immagine finestra mobile che ho fatto con s3fs, e ha fatto in questo modo:
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
Visualizzazione "Operazione non consentita" errore.
Così ho cercato su google, e ha fatto come questo (l'aggiunta di --privileged = true) di nuovo:
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
Poi, montaggio non presenta errori, ma se il comando ls correre, "Trasporto endpoint non è collegato" Errore è accaduto.
Come posso montare s3fs all'interno del contenitore docker? È impossibile?
[AGGIORNATO]
Aggiungi configurazione 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
Grazie! Metto alla prova la tua procedura, ha funzionato come un incantesimo. Ma anche, come dici tu, non può essere montato da un altro contenitore ... C'è un modo per usarlo da un altro contenitore? – kochizufan
'--privileged' è ciò che fa, purtroppo questo funziona solo durante la fase di esecuzione e non la fase di costruzione. – buley