인프런 커뮤니티 질문&답변

dkdlscm123님의 프로필 이미지
dkdlscm123

작성한 질문수

실전도커: 도커로 나만의 딥러닝 클라우드 컴퓨터 만들기

1줄 코드로 RStudio Docker Container 실행하기

RStudio Server에서 발생하는 권한 오류

작성

·

79

1

안녕하세요 선생님, 수업 재밌게 잘 듣고 있습니다.

다름이 아니라 Module 8 - R을 위한 도커 강의 중 컨테이너와 RStudio를 연결해 실행하는 과정에서 계속 권한 관련 오류가 나타나 해결방법을 여쭙고 싶습니다.

docker run 커맨드를 입력할때 sudo를 같이 써보기도 하였으나 계속 permission 문제가 발생해 가상머신의 경로에 진입이 안되고 계속 튕겨서... 실수하거나 놓친 부분이 있는지 알고싶습니다.

 

권한없음문제2.PNGimage.png권한없음문제.PNG

 

답변 2

0

다니엘님의 프로필 이미지
다니엘
지식공유자

안녕하세요! 수업에 적극적으로 참여해 주셔서 감사합니다.

현재 문제는 Kaggle에서 제공하는 공식 Docker 이미지에서, 최근의 torch 설치 경로가 rstudio 유저가 접근할 수 없는 위치로 변경된 것으로 보입니다. 이 문제를 해결하는 방법은 두 가지가 있습니다.

  1. 이미지 버전을 v56으로 낮추기:
    torch 설치 경로가 변경된 최근 이미지를 사용하는 대신, v56번 이미지로 낮추면 문제 없이 실행될 가능성이 높습니다.

  2. 강의 8장 끝까지 수강 후 실습하기:
    강의의 마지막 부분에서 새로운 Docker 이미지를 정의하고, USERroot로 재정의하는 방법을 학습할 수 있습니다. 이를 통해 torch 설치 경로 문제를 해결할 수 있습니다.

이 문제는 Kaggle의 Docker 이미지에서 기본 USERroot인데 반해, rockers 프로젝트에서는 rstudio 유저로 정의되어 있어 발생하는 충돌 때문입니다.

 

그래서 강의의 마지막 부분까지 학습을 하시면 새롭게 도커 이미지를 정의하는 내용을 학습하시게 되고 이 때 USERroot 유저로 재정의하게 됩니다.

ARG rstats_version=v56

FROM gcr.io/kaggle-gpu-images/rstats:${rstats_version}
ARG rstudio_version=2021.09.0-351
RUN apt-get update && \
    apt-get install -y gdebi-core && \
    wget https://download2.rstudio.org/server/focal/amd64/rstudio-server-${rstudio_version}-amd64.deb && \ 
    gdebi -n rstudio-server-${rstudio_version}-amd64.deb && \ 
    apt-get clean && \
    rm rstudio-server-${rstudio_version}-amd64.deb

WORKDIR /home/rstudio
COPY setup.R ./setup.R
RUN chown rstudio:rstudio ./setup.R
RUN chmod +x ./setup.R
USER rstudio
RUN Rscript ./setup.R && \
    rm ./setup.R
USER root


EXPOSE 8787
# LABEL revised_by="Daniel Youk" \
#       revised_date="2023-12-24"
ENTRYPOINT [ "/bin/bash"]
CMD ["-c", "rstudio-server start && tail -f /dev/null"]

이제 강의를 좀 더 업그레이드할 시점이 된 것 같네요.

 

좋은 지적해 주셔서 감사 드리고 해결에 어려움이 있으시면 개인적으로 연락 주세요.

 

감사합니다.

다니엘 드림

0

안녕하세요, 인프런 AI 인턴입니다. dkdlscm123님.

RStudio Server와 Docker를 사용하면서 발생하는 권한 문제에 대해 설명해 드리겠습니다. 이러한 오류는 주로 Docker 컨테이너 실행 시 권한 설정이 적절하게 이루어지지 않았거나, 공유 디렉토리의 권한 문제가 있을 때 발생할 수 있습니다.

일반적인 해결 방법:

  1. 권한 문제 확인:

    • Docker 실행 시 --user 옵션을 사용해 현재 사용자 권한으로 컨테이너를 실행하는 것을 시도해 보세요. 예를 들어:
      
      docker run --user $(id -u):$(id -g) ...
      

      이 명령어는 현재 로그인된 사용자의 UID와 GID를 가져와 컨테이너 실행 시 적용합니다.
  2. 볼륨 마운트 권한:

    • 호스트와 컨테이너 간의 볼륨 마운트 시, 호스트 경로의 권한을 확인해 주세요. 볼륨으로 마운트되는 폴더가 현재 사용자에 의해 읽고 쓸 수 있어야 합니다.
  3. SELinux 또는 AppArmor 확인:

    • 만약 SELinux, AppArmor와 같은 보안 확장 기능을 사용 중이라면, 이들이 권한을 제한하고 있는지 확인해 보세요. 이를 일시적으로 비활성화하거나, Docker 실행 시 관련 옵션을 사용해 완화할 수 있습니다.
  4. 컨테이너 내부 사용자 변경:

    • Dockerfile이나 RStudio의 실행 스크립트에서 직접 사용자 권한을 설정하는 방법도 있습니다. 예를 들어 USER 명령어를 사용해 컨테이너 내부의 사용자 권한을 설정할 수 있습니다.

해결이 되지 않았을 경우, 아래 두 관련 게시물을 참고해 추가적인 방법을 시도해보세요:

각 해결 방법을 수행하면서도 문제가 지속된다면, 구체적인 설정 파일이나 커맨드와 함께 다시 문의 부탁드립니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.

현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

dkdlscm123님의 프로필 이미지
dkdlscm123

작성한 질문수

질문하기