본문 바로가기
카테고리 없음

sshfs 를 docker container 안에서 사용하기

by DogBull 2018. 4. 18.

centos 에서 sshfs 를 설치하는 방법은 이곳에 잘 나와있다.

yum install -y epel-release
yum install -y fuse-sshfs

설치는 위와 같이 단 두 줄 이면 충분하다.

마운트는 더 간단하다.

sshfs root@0.0.0.0:/root /mnt

위 명령은 원격 0.0.0.0 에서 구동되고 있는 ssh 서버의 root 계정을 이용하여 /root 폴더를 내 로컬의 /mnt 폴더에 마운트 시킨다.



docker 의 container 에서 sshfs를 사용하게 하려면 어떻게 해야할까?

docker plugin 방식으로 하는 방법은 이곳에 잘 나와 있다.
vieux/sshfs 플러그인 설치 후 docker volume 를 이용하는 방식이다.

하지만 호스트에서의 별다른 설정 없이 컨테이너 만으로 sshfs를 이용하고 싶었다.

그러기 위해서는 docker run 을 수행 할 때, --privileged 옵션을 주면 가능한 것으로 확인되었다.

--privileged 옵션 없이 앞서 설명한 sshfs 설치까지만 가능하고, ssfs 명령으로 마운트를 시도하면 아래와 같은 오류가 발생한다.

[root@614f9c83e4ec /]# sshfs root@0.0.0.0:/root /mnt
fuse: device not found, try 'modprobe fuse' first

--privileged 옵션을 포함하여 앞서 설명한 대로 진행하면 마운트에 성공한다.

아직 이유는 잘 모르겠지만 인터넷을 보니, --privileged 옵션을 사용하여 컨터이너를 구동하는 것을 많이 꺼리는 것 같다.
컨테이너를 탈출하여 호스트에 접근하는 우려등이 언급되었던것 같다.



참조

https://www.howtoforge.com/tutorial/how-to-install-sshfs-on-centos-7/

https://github.com/vieux/docker-volume-sshfs