IIP-Sogang / IIP_Docker

도커 메뉴얼
0 stars 1 forks source link

matlab #2

Open kooBH opened 5 years ago

kooBH commented 5 years ago

silent - install 을 하려면 network 설치를 할 수 가 없다. matlab DVD 또는 전체 설치 파일이 있어야함.

Docker에서 GUI를 연결할 수 있게 하려는데, 실행하자마자 종료되고 GUI는 안뜨는중

kooBH commented 5 years ago

그냥 host 에 있던 matlab 폴더 자체를 넣어버림

lsb_release: not found 에러

apt-get install lsb-release

apt-get install libxt-dev

root@5d16a1517f3d:/mnt/MATLAB/R2019a/bin# ./run.sh
License checkout failed.
License Manager Error -9
The hostid of your computer (0242ac110002) does not match the hostid of the license file
(74d4351cabf0).
To run on this computer, you must run the Activation client to reactivate your license.

Troubleshoot this issue by visiting:
https://www.mathworks.com/support/lme/R2019a/9

Diagnostic Information:
Feature: MATLAB
License path: /root/.matlab/R2019a_licenses:/mnt/MATLAB/R2019a/licenses/license.dat:/mnt/MATLAB/R2019a/licenses/li
cense_iip-kbh_627490_R2019a.lic
Licensing error: -9,57.

hostid != dockerid

문제가 된다. 컨테이너 생성시 동일한 id를 지닌다는 보장이 되지 않기 때문에 라이센스의 유효성을 보장할 수 없다.

일단 도커 다시 열어보고 호스트 아이디가 바뀌는지 보자. 바뀔거 같지만.

kooBH commented 5 years ago

검색해서 나온 여러 방법중 유일하게 성공한 케이스

https://stackoverflow.com/questions/16296753/can-you-run-gui-applications-in-a-docker-container/25280523#25280523

gui 쓰려하니 matlab splash 뜨고 바로 종료

해결

apt-get install lsb-release
apt-get install libxt-dev
apt-get install libxtst-dev
apt-get install libxrender-dev
apt-get install libxext-dev

Dockerfile

FROM iip/demo:v1
RUN apt-get update
RUN apt-get install -qqy x11-apps
ENV DISPLAY :0
ADD ./mnt /mnt

run

docker build . -t alt:v1
XSOCK=/tmp/.X11-unix
XAUTH=/tmp/.docker.xauth
xauth nlist :0 | sed -e 's/^..../ffff/' | xauth -f $XAUTH nmerge -
docker run -ti -v $XSOCK:$XSOCK -v $XAUTH:$XAUTH -e XAUTHORITY=$XAUTH alt:v1

container 의 host id는 변경이 없지만 라이센스 파일내의 hostid를 변경하는 걸로는 라이센스 문제를 회피할 수 없다.

kooBH commented 5 years ago

gui 설치시 자바 관련 에러 발생

Error : unable to connect to host. java.lang.RuntimeException: Unexpected error: 
java.security.InvalidAlgorithmParameterException: 
the trustAnchors parameter must be non-empty

https://github.com/docker-library/openjdk/issues/261 여기서

RUN update-ca-certificates -f

이 구절을 보고

apt-get install ca-certificates 를 함

설치 진행 중

kooBH commented 5 years ago

libglib 관련 메세지 나옴 apt-get install libglib2.0-0

matlab 에서 seg 발생..?

gui는 안되지만 cli 는 작동하는 것을 확인

matlab -nodisplay -nosplash -nodesktop -r <스크립트명>

도커를 만들때마다 라이센스를 활성화 해야하는지 테스트 해봐야한다. 다른 pc에서 테스트 해보자

kooBH commented 5 years ago

서버에 tar 파일을 보내서
docker load -i iip_v4.tar

해서 run 할 수 가 없네 xauth 관련 에러가 발생. 아 생각해보니. pc -> 서버 -> 도커 잖아. 당연히 바로 안되지.

https://unix.stackexchange.com/questions/12755/how-to-forward-x-over-ssh-to-run-graphics-applications-remotely

를 확인하고 일단

sudo chmod 666 /tmp/.docker.xauth/

xauth (argv) 1 unable to read any entries from file (stdin) 에러

아 생각해보니 설치가 된 시점에서 gui를 연결할 필요가 없잖아. 삽질했네

hello world 확인함. 작동 잘됨

kooBH commented 5 years ago

./matlab -nodisplay -nosplash -nodesktop -r <~~.m>

kooBH commented 5 years ago

signal process module 이 있어야한다.

kooBH commented 5 years ago

package 좀 더 추가헤서 v8

kooBH commented 5 years ago

matlab 에서 병렬 연산, GPU 연산 돌아가는 건 확인함. 실제 프로젝트 매틀랩 코드가 돌아가는지는 확인해 봐야한다