Docker 컨테이너가 X11 전달을 통해 그래픽 인터페이스 표시

1671 단어 학습 노트docker
Docker 컨테이너가 X11 전달을 통해 그래픽 인터페이스 표시
솔루션
컨디션
# Ubuntu 16.04 LTS (GNU/Linux 4.4.0-21-generic x86_64)
# Docker version 18.09.3, build 774a1f4

너무 길어서 판을 보지 않는다
docker를 실행할 때 다음 인자를 추가합니다
docker run -it \
-v /etc/localtime:/etc/localtime:ro \
--net=host \
-e DISPLAY=:10.0 \
-v $HOME/slides:/root/slides \
-e GDK_SCALE \
-e GDK_DPI_SCALE \
--name [containername] \
[yourimage] \
/bin/bash

docker 숙 호스트에서 X11 인증을 닫습니다
sudo vim /etc/lightdm/lightdm.conf      
#    xserver-allow-tcp=true
sudo systemctl restart lightdm               
xhost  +  #           

다시 보고 싶어요.
X11 서비스의 도형 디스플레이 원리는 서버와 클라이언트 사이에 Server/Client 그룹을 구축하는 것이다. X11은'DISPLAY'환경 변수를 통해 도형을 어디에 표시할지 지정한다.
이 원리를 바탕으로 Docker의 GUI 프로그램을 밖으로 보여주는 것은 X11 클라이언트의 내용을 용기에서 어떤 방식으로 전달하는 것이다.방법은 두 가지가 있어요.
  • SSH 연결 또는 원격 제어 소프트웨어를 통해 최종적으로 tcp 플러그인을 통해 데이터를 발송
  • 용기와 호스트가X11의 유닉스 플러그인을 공유하고 데이터를 직접 보내기
  • 응용 장면에서 구분하면'로컬 GUI 프로그램 실행'과'원격 서버의 GUI 프로그램 실행'으로 두 가지 상황으로 나눌 수 있다.이 두 가지 상황은 조작에 있어서 매우 비슷하지만 전자는 유닉스 플러그인을 사용할 수 있고 후자는 반드시 tcp 플러그인을 사용하여 전송해야 하기 때문에 원리적으로 큰 차이가 있다.이 블로그를 구체적으로 참조하시오.

    좋은 웹페이지 즐겨찾기