2017-03-25 1 views
1

도커에서 GUI app을 실행하고 있습니다. Xserver가 노출되어 보안 문제가 발생한다고 들었습니다.도커 GUI 응용 프로그램 용 xhost 명령

  • [-d ~/작업 공간] || : 나는 다음의 각 단계에서 수행되고 있는지 알고 특히 xhost local:root 싶습니다 에서 mkdir ~/작업 공간
  • 에 xhost 지역 : 루트
  • 고정 표시기 실행 -i --net = 호스트 --rm -e 디스플레이 -v의 $ 홈/작업/:/작업/: Z docbill/우분투 - umake - 일식
  • 이미 존재하지 않는 경우

답변

2
  • [ -d ~/workspace ] || mkdir ~/workspace

이 홈 디렉토리에 작업 공간 디렉토리를 생성합니다.

  • xhost local:root

이 X 윈도우 디스플레이에 연결하는 로컬 컴퓨터에서 루트 사용자를 허용

.

  • -i :
    • docker run -i --net=host --rm -e DISPLAY -v $HOME/workspace/:/workspace/:z docbill/ubuntu-umake-eclipse

    이것은 다음과 같은 옵션이있는 컨테이너를 실행하는 용기 내에 시작 프로세스에 의해 수신 실행이 명령 한 후 입력 된 대화 형 입력.
  • --net=host : 호스트 네트워킹. 격리 된 네트워크 스택으로 컨테이너가 시작되지 않습니다. 대신 호스트의 모든 네트워킹 인터페이스는 컨테이너 내부에서 직접 액세스 할 수 있습니다.
  • --rm 자동으로 출구에서 컨테이너를 정리합니다. 그렇지 않으면 컨테이너는 중지 된 상태를 유지합니다.
  • -e DISPLAY 호스트의 DISPLAY 환경 변수를 컨테이너로 전달합니다. 이것은 GUI 프로그램에 출력을 보낼 곳을 알려줍니다.
  • -v $HOME/workspace/:/workspace/:z 호스트의 홈 디렉토리에서 작업 공간 폴더를 selinux 공유 설정이 활성화 된 컨테이너의/workspace 폴더로 매핑하십시오.
  • docbill/ubuntu-umake-eclipse 도커 허브에서 사용자 docbill이 작성한이 이미지를 실행합니다 (여기에 누구나 계정을 만들 수 있음). 이것은 도커의 공식 이미지가 아니라 커뮤니티 제출 이미지입니다.

옵션에서이 명령은 RHEL 또는 CentOS Docker 호스트에서 실행되는 사용자를 위해 설계되었을 가능성이 큽니다. Windows 용 Docker 또는 Mac 용 Docker에서는 작동하지 않지만 다른 Linux 변종에서 작동해야합니다.

xhost 및 호스트 네트워킹없이 GUI를 사용하여 내 컨테이너를 실행하는 비슷한 명령을 사용했습니다. 대신, 나는 X 윈도우 소켓 (/tmp/.X11-unix)을 컨테이너에 직접 매핑했다 :

docker run -it --rm -e DISPLAY -u `id -u` \ 
    -v /tmp/.X11-unix:/tmp/.X11-unix \ 
    -v /etc/localtime:/etc/localtime:ro \ 
    my_gui_image 
관련 문제