문제 상황
ubuntu에서 GPU가 탑재된 server에 ssh로 접속하고, 그 위에서 docker contatiner 를 실행하여, ROS2의 turtlesim node GUI를 띄워보려고 했는데 "X11 connection rejected because of wrong authentication." 에러가 뜨면서 계속 실패했다.
시도해 본 것들
예전에 ssh server가 아닌 그냥 GPU가 탑재된 컴퓨터를 쓸 때는 ssh 접속 전 local에서 `$ xhost +` 만 해주면 해결이 되었었는데, 이번에는 xhost의 문제가 아니었다.
docker run 할 때 주는 -v, -e, 옵션을 이것저것 수정해 보기도 하고, ssh 접속 시 -X 옵션도 주어봤지만, 결국 해결 방법은 ssh server의 Xauthority 파일을 docker container와 연결해 주는 것이었다.
키워드
docker image 실행 시 xhost, DISPLAY, Xauthority, X11-unix, -v 옵션, -e 옵션을 사용하는 방법들을 잘 알아 둘 필요가 있다.
해결 방법
1. 먼저 ssh server 내부에서 .Xauthority 파일의 위치를 확인한다.
2. docker run 할 때 `-v /home/gaeun/.Xauthority:/root/.Xauthority` 옵션으로 적절한 위치에 .Xauthority 파일을 연결해 준다.
3. local에서 `$ xhost +` 커맨드를 실행해준다.
4. xeyes GUI로 간단한 테스트를 하기 위해, `$ sudo apt-get install x11-apps` 패키지를 설치해 준다.
5. `$ xeyes` 커맨드를 실행한다.
6. 마지막으로 ros2 turtlesim 노드를 실행해 본다.
그런데 새로운 문제 발생.......
'Tech > Docker' 카테고리의 다른 글
[Docker] NVML, NVIDIA, CUDA와 관련된 에러 다모여! (1) | 2023.03.30 |
---|---|
[Git] git permission denied (publickey) 해결 방법 : 내 repository가 아닐 때 ssh key 등록 방법 (0) | 2022.07.26 |