Windows의 Docker 컨테이너에서 matplotlib 작동

소개



Windows의 Docker 컨테이너에서 matplotlib를 작동시키는 방법을 설명합니다.
Windows는 Windows 10 Pro 64Bit 버전 2004에서 시도했습니다. 이보다 오래된 버전에서도 시도했습니다.
Docker Desktop은 WSL2를 지원하거나 이전 상태로 둘 다 괜찮습니다.
Docker 컨테이너내이므로, 그대로 matplotlib등의 그래프는 호스트측에 표시되지 않습니다.
호스트측(Windows측)의 디스플레이에 표시시키려면, 컨테이너 OS는 linux계라고 생각하므로,XServer를 Windows측에 시작해, 그XServer에 표시를 흘려 넣도록 할 필요가 있습니다.

VcXsrv 설치



먼저 VcXsrv를 설치합니다.
설치가 끝나면 Windows 메뉴에서 VcXsrv의 XLaunch를 클릭합니다.
기본 설정을 그대로 둘 수 있습니다.

방화벽 설정은 필요하지 않습니다.
또, 같은 PC로 실행한다면 불필요할 것입니다만, 인증등으로 에러가 된다면 아래와 같이를 시도해 주세요.
C:\Program Files\VcXsrv 등에 있다
X0.hosts라는 파일을 열어 호스트의 IP 주소 또는 호스트 이름을 추가합니다.
이 파일은 권한이 없으면 편집할 수 없기 때문에, 프로퍼티등으로 권한 추가등을 실시해 주세요.
(덧붙여서 VS Code에서 열면 편집 할 수 있습니다)

시작하면 화면 오른쪽 하단에 VcXsrv X Server 아이콘이 표시됩니다.
해당 아이콘을 마우스 오른쪽 버튼으로 클릭하고 표시되는 메뉴에서 Applications xclock을 선택하면 아래와 같이 xclock이 시작됩니다!


docker-compose.yml



디스플레이 설정으로 docker-compose.yml에 다음을 추가합니다.

docker-compose.yml
    environment:
      DISPLAY: host.docker.internal:0.0

일본어 표시



일본어 표시가 필요한 경우 Dockerfile에 다음을 추가하십시오.
fonts-ipafont라고 하는데, 물론 다른 폰트라도 상관없습니다.
RUN apt-get update && apt-get install -y fonts-ipafont

작동시킨 프로그램



동작시킨 프로그램으로서는 이런 느낌입니다.

test.py
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(-3, 3, 0.1)
y = np.sin(x)
fig = plt.plot(x, y)
plt.show()

matplotlib



Docker 내에서 위 프로그램을 실행하면 아래와 같은 그래프가 표시됩니다.


결론



잘 그래프가 표시되었습니까? ?
이상입니다만, 여러분의 개발 효율 향상에 기여할 수 있으면 다행입니다.

좋은 웹페이지 즐겨찾기