Docker 컨테이너의 R로 다이어그램 플롯
소개
R의 tidyverse
패키지군을 포함한 docker 이미지로서 rocker/tidyverse
가 유명합니다. 그러나 이러한 이미지는 (아마도) RStudio를 사용한다고 가정합니다.
나는 RStudio를 사용하지 않았고, 다음과 같은 경위도 있어 컨테이너내의 R 로 플롯을 표시시키는 방법을 조사해 보았습니다.
tidyverse
패키지 세트를 설치하는 데 시간이 오래 걸립니다 rockerjp/tidyverse
를 사용하면 많은 양의 패키지를 직접 설치하지 않아도됩니다 참고 URL
이러한 링크처의 설정과 비교하면 항목이 적습니다만, 아마 사용한 R 의 컨테이너내에서 설정되어 있기 때문이라고 생각합니다.
예 1: r-base 이미지의 경우
먼저 R의 공식 이미지 r-base
에서 시도했습니다. 시행 착오 후의 결과를 나타냅니다.
설정 항목
-u docker
-e DISPLAY=$DISPLAY
및 -v /tmp/.X11-unix:/tmp/.X11-unix
docker run --rm -it \
-u docker \
-e DISPLAY=$DISPLAY \
-v /tmp/.X11-unix:/tmp/.X11-unix \
r-base R
boxplot(iris$Sepal.Length ~ iris$Species)
플롯되었습니다.
예 2: rockerjp/tidyverse 이미지의 경우
우선 도전
이전과 달리 사용자 이름은 rstudio
입니다 (원래 이미지에 지정됨).
docker run --rm -it \
-u rstudio \
-e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix \
rockerjp/tidyverse R
> boxplot(iris$Sepal.Length ~ iris$Species)
Error in (function (display = "", width, height, pointsize, gamma, bg, :
X11 module cannot be loaded
In addition: Warning message:
In grSoftVersion() :
unable to load shared object '/usr/local/lib/R/modules//R_X11.so':
libXt.so.6: cannot open shared object file: No such file or directory
이런 식으로 오류가 발생하여 플롯되지 않았습니다.libXt.so.6
가 부족한 것 같습니다.
libxt6 패키지를 추가한 이미지의 경우
그래서 다음과 같은 Docker 파일을 준비했습니다.
FROM rockerjp/tidyverse:latest
RUN apt-get update \
&& apt-get install -y libxt6
빌드합니다. 이미지명은 만일 mytidyverse
로 합니다.
docker build -t mytidyverse .
docker run --rm -it \
-u rstudio \
-e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix \
mytidyverse R
boxplot(iris$Sepal.Length ~ iris$Species)
그림은 생략하지만 이번에는 플롯되었습니다.
tidyverse
가 설치되어 있으므로 ggplot2
도 시도해 보겠습니다.
library(ggplot2)
ggplot(iris, aes(Species, Sepal.Length)) +
geom_boxplot()
이것도 플롯되었습니다.
결론
rockerjp/tidyverse
컨테이너에서 R을 시작하고 플롯하는 데 성공했습니다. 이제 직접 tidyverse
패키지를 설치하지 않고 완료할 수 있습니다.
공식 이미지로 libxt6
패키지를 추가해 주시면 이번과 같은 수고는 줄어듭니다만……(타력 본원)
Reference
이 문제에 관하여(Docker 컨테이너의 R로 다이어그램 플롯), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/toshi-ara/items/e4a7acd308f0ba701be0
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
docker run --rm -it \
-u rstudio \
-e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix \
rockerjp/tidyverse R
> boxplot(iris$Sepal.Length ~ iris$Species)
Error in (function (display = "", width, height, pointsize, gamma, bg, :
X11 module cannot be loaded
In addition: Warning message:
In grSoftVersion() :
unable to load shared object '/usr/local/lib/R/modules//R_X11.so':
libXt.so.6: cannot open shared object file: No such file or directory
FROM rockerjp/tidyverse:latest
RUN apt-get update \
&& apt-get install -y libxt6
docker build -t mytidyverse .
docker run --rm -it \
-u rstudio \
-e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix \
mytidyverse R
boxplot(iris$Sepal.Length ~ iris$Species)
library(ggplot2)
ggplot(iris, aes(Species, Sepal.Length)) +
geom_boxplot()
rockerjp/tidyverse
컨테이너에서 R을 시작하고 플롯하는 데 성공했습니다. 이제 직접 tidyverse
패키지를 설치하지 않고 완료할 수 있습니다.공식 이미지로
libxt6
패키지를 추가해 주시면 이번과 같은 수고는 줄어듭니다만……(타력 본원)
Reference
이 문제에 관하여(Docker 컨테이너의 R로 다이어그램 플롯), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/toshi-ara/items/e4a7acd308f0ba701be0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)