본문 바로가기
개발/졸업과제

docker에서 ubuntu에 noVNC 설치하기 (local)

by 컴쏘 2023. 7. 2.

삽질의 삽질의 삽질의 삽질의 삽질의......... (무한 루프)

 

1. 윈도우 docker 데스크탑 설치

 

2. docker에서 ubuntu 다운받기

 

3. docker 이미지를 Container 파일로 생성 및 실행 (매우 중요 : 이때 port 번호도 부여하기)

docker run -it -p 6080:6080 --name mynovnc2 ubuntu

[외부포트]:[컨테이너포트] 6080 포트로 noVNC 서비스가 작동

4. docker 확인

docker desktop의 container에 가보면 이렇게 생성되고 실행 중이다. (port 번호도 부여되었음)

5. docker 우분투 업데이트

6. noVNC 설치 및 관련 설정들 (꽤 오래걸림)

apt install xfce4-goodies tightvncserver novnc websockify python3-numpy build-essential net-tools curl git software-properties-common -y

대륙(Asia) 도시(Seoul) 각각 입력해주면 설치 완료

 

7. vncserver 실행

vncserver

명령을 실행하여 VNC 액세스 암호를 설정하고 초기 구성 파일을 만들고 VNC 서버 인스턴스를 시작하는 단계이다.

암호는 6~8자 사이여야 합니다. 8자 이상의 암호는 자동으로 잘린다.

오류 발생

추측 : 환경 변수를 설정하지 않았기 때문에 발생

 

해결과정

 

1) 현재 사용자의 이름을 환경 변수에 추가하기

echo "export USER=$USER" >> ~/.bashrc

2) source 명령어 실행

source 명령어는 설정 파일을 로드할 때 리부팅 없이 즉시 적용하기 위해 사용하는 명령어

source ~/.bashrc

다시 시도

잘 실행 된다.

암호 설정해주기

+) bashrc 란?

쉘의 개념, bashrc의 개념

+) source 명령어

source 명령어와 bash에 대해 알아보자

 

8. 포트 5901에서 실행 중인 VNC 서버 인스턴스 중지

vncserver -kill :1

VNC 서버 구성 방식을 변경할 예정

9. xstartup 파일을 수정하기 전에 원본을 백업

mv ~/.vnc/xstartup ~/.vnc/xstartup.bak

10. 새 xstartup 파일을 만들고 nano와 같은 텍스트 편집기에서 열기

nano ~/.vnc/xstartup

nano가 없다고 함

nano 설치해주기

apt-get install nano

다시 시도하면 이렇게 창이 새로 열린다.

11. 다음 파일에 내용 추가

#!/bin/bash
xrdb $HOME/.Xresources
startxfce4 &

12. 파일을 실행 가능하게 만들기

chmod +x ~/.vnc/xstartup

VNC 서버가 새로운 시작 파일을 제대로 사용할 수 있도록 하는 것

13. 다시 vncserver 실행

구성이 완료되면 로컬 컴퓨터에서 VNC 서버에 연결할 준비가 된 것이다.

 

14. 그다음 (무슨 설정인지는 모르겠음)

cd /etc/ssl ; openssl req -x509 -nodes -newkey rsa:2048 -keyout novnc.pem -out novnc.pem -days 365

명령어 실행하면 나오는 입력창 (무슨 입력인지는 잘 모르겠음..)

15. ?? 설정

chmod 644 novnc.pem

16. 연결하기 

websockify -D --web=/usr/share/novnc/ --cert=/etc/ssl/novnc.pem 6080 localhost:5901

추가 확인 (websockify라는 프로세스 정보를 찾는 명령어)

ps -ef | grep websockify 
  • ps -ef : 프로세스 확인
  • grep [WORD] : WORD를 찾아라 (여기서는 websockify)

ps -ef | grep websockify : ps -ef 명령어로 나온 출력물을 가지고 websockify 를 찾는다. (이때 |(파이프)가 두 명령어 사이를 연결)

17. 접속 

port 열려있는지 확인

https://localhost:6080/vnc.html

성공했다.....

깨달은 점

필요한 ip는 각각의 이미지 서버의 ip가 아닌 이런 이미지들을 담고 있는 제일 밖의 서버 ip이다.


회색 화면 나오는 오류 수정

 

오류 수정

들어갔는데 검은 화면 뜸

원인 : vnc 접속 후 실행될 Application이 아무것도 없어서…

 

해결 방법 (참고 블로그)

Ubuntu 18.04 환경에서 VNC Server 설정했을 때 회색 화면 나타나는 문제

 

1. 돌아가는 vnc 서버 종료 시키기

vncserver -kill :1

 

2. 패키지 설치 (꽤 오래걸림) 

apt install gnome-session-flashback

3. ~/.vnc/xstartup 파일 내용변경

nano ~/.vnc/xstartup

변경 내용

#!/bin/sh

# Uncomment the following two lines for normal desktop:
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
x-window-manager &

exec /usr/bin/startxfce4 &

# 아래 내용 추가 하였음 

#!/bin/sh
autocutsel -fork
xrdb $HOME/.Xresources
xsetroot -solid grey
export XKL_XMODMAP_DISABLE=1
export XDG_CURRENT_DESKTOP="GNOME-Flashback:Unity"
export XDG_MENU_PREFIX="gnome-flashback-"
unset DBUS_SESSION_BUS_ADDRESS
gnome-session --session=gnome-flashback-metacity --disable-acceleration-check --debug &

4. 다시 vncserver 실행

우분투 서버 화면과 동일한 화면이 나왔다.

오류도 수정....


[참고 영상] : https://www.youtube.com/watch?v=BWe2bnL0Nl8
[참고 블로그] : https://ko.linux-console.net/?p=5276#gsc.tab=0