그래픽을 통해 나를 연결하는 방식
지금, Docker는 복잡한 용어인 것 같습니다. 어디에 있는지, 왜, 나는 심지어 Docker로 무엇을 해야 하는지 알고 싶어요?!나는 이 모든 질문에 대답하지 않을 것이다. 이것은 내가 유튜브에서 멋진 영상을 본 입문 절차이고 나도 같은 내용에 링크를 추가할 것이다.
최고의 Docker 101 (60분) 비디오 - https://bit.ly/3bfhh4v
나는 이 블로그에서 무엇을 소개할 것입니까?
나는 문외한으로 설명하거나 최선을 다할 것이다.Docker는 구축된 이미지를 처리하고 용기로 실행하며 만들어진 가상 패키지/서비스를 관리하는 데 뛰어나지만, GUI를 사용해야 하는 프로그램을 실행하고 싶다면?정상적인 경우, docker 이미지를 실행하지만, 터미널에서 실행되며, 원하지 않는 출력이 발생합니다.따라서 이 블로그는 docker 이미지를 GUI와 연결하기 위한 것입니다.
나는 어디서부터 이 화제를 이야기하기 시작했습니까?😅
이것은 듣기에는 매우 어리석지만, 단지 나에게 내가 어떻게 이 화제에 들어갔는지 작은 배경 이야기 하나만 줄 뿐이다.니술라트 대학의 본과생으로서 나는 이미 6학기를 다녔다(
현재 나의 유일한 운영체제는 Fedora, Mac OSX, Windows이다. 나는 Ubuntu를 설치할 생각도, 이를 위해 코드 블록을 사용할 생각도 없다.그래서 나의 유일한 선택은 ubuntu docker 이미지나 가상 컴퓨터를 사용하는 것이다.더 좋은 대체 용도인 것 같아서 열부하 증가와 CPU 속도 감소를 피할 수 있는 docker image를 사용해야 한다고 생각합니다.현재, 이것은 나에게 있어서 완전히 새로운 것이다. docker 등등. 그러나, 여전히 나의 docker 이미지를 GUI와 연결시키고, 모든 docker 이미지에 사용할 수 있다는 것을 발견하려고 한다.현재 Mac OSX 및 Linux 릴리스만 성공적으로 설치할 수 있습니다.
이야기를 충분히 했으니, Docker 이미지를 GUI와 어떻게 연결하는지 알아보자.
ubuntu docker 이미지로libgraph와 GUI 연결
Libgraph는 TurboC graphics API(graphics.h)가 GNU/Linux에서 SDL을 사용하여 구현한 것입니다.내가 너에게 경고하건대, 이것은 이미 매우 오래되었다.인터넷에서 효과적인 해결 방안을 찾기가 매우 어렵다🙁
시스템에 설치할 것
sudo
과 libgraph
의 모든 초기 설정을 포함하는 docker 이미지를 만들었습니다.컴퓨터 그래픽스 첫 번째 단계: C 파일 중 하나를 사용하여 이미지를 생성하는 docker 파일 만들기
FROM aemiej/compgraphics:latest
LABEL maintainer="Aemie Jariwala"
WORKDIR "/libgraph-1.0.2"
RUN gcc -o sample sample.c -lgraph
CMD ["./sample"]
2단계: MAC OSX 사용자용
Mac의 경우 GUI를 실행하려면 추가 애플리케이션이 필요합니다.그것들은 각각
socat
과 Xquartz
이다.$ brew install socat
$ brew install xquartz
Remember to restart your PC after this, it's a must else it won't work.
두 개의 터미널을 엽니다. 그 중 하나는 socat을 계속 실행하고, 다른 하나는 컨테이너화docker 이미지를 실행합니다.
Socat에서는 한 위치에서 다른 위치로 양방향 데이터 전송을 허용합니다.docker 이미지의 실행을 수신하고 GUI 응용 프로그램 Xquartz에 이미지를 표시합니다.
Terminal 1
$ socat TCP-LISTEN:6000,reuseaddr,fork UNIX-CLIENT:\"$DISPLAY\"
Terminal 2
$ open -a Xquartz # within preferences => security, tick both checkboxes
$ git clone https://github.com/AemieJ/ubuntu-docker-libgraph.git
$ cd ubuntu-docker-libgraph
$ docker build --pull --rm -f "Dockerfile" -t ubuntudockerlibgraph:latest "."
$ docker run -d -e DISPLAY=192.168.1.11:0 ubuntudockerlibgraph
여기서 DISPLAY=192.168.1.11
는 사용자마다 다르기 때문에 ifconfig en0
에서 찾을 수 있습니다. inet X netmask
는 이와 유사하게 X 주소는 디스플레이 키로 값을 바꿉니다.그 다음에 한 프로그램이 출력을 열 것입니다. (아주 귀엽습니다.)
이와 유사하게, Firefox, 크롬, Spotify, 스카이프, 그리고 너무 많은 미리 만들어진 docker 이미지를 실행할 수 있습니다.👻. 이 모든 이미지는git 저장소에서 찾을 수 있습니다 -
docker를 사용하여 Spotify GUI를 여는 방법에 대한 작은 예:
$ docker run -d -e DISPLAY=192.168.1.11:0 jess/spotify
https://github.com/jessfraz/dockerfiles 마찬가지로, 너도 다른 이미지를 똑같이 처리할 수 있다.
2단계: 모든 Linux 릴리스용
Mac OSX와 비교하여 이를 구현하는 단계는 비교적 간단합니다.터미널 하나와 추가 구성 요소만 설치하면 됩니다.
$ git clone https://github.com/AemieJ/ubuntu-docker-libgraph.git
$ cd ubuntu-docker-libgraph
EXPOSE 8887
행 앞에 CMD ["./sample"]
를 추가하여 Dockerfile을 업데이트합니다.$ sudo docker build --name ubuntudockerlibgraph --pull --rm -f "Dockerfile" -t ubuntudockerlibgraph:latest "."
$ sudo apt-get -y install xauth
$ xauth list
xauth list
를 실행할 때 아래 출력username/unix:0 MIT-MAGIC-COOKIE-1 8fe8efc75454dbf178bbe00442689406
을 받을 수 있습니다.$ sudo docker run -ti --net=host -e DISPLAY -v /tmp/.X11-unix ubuntudockerlibgraph bash
$ xauth add username/unix:0 MIT-MAGIC-COOKIE-1 8fe8efc75454dbf178bbe00442689406
# you'll receive an error => `./Xauthority file doesn't exist` => disregard it
$ /sample
빌어먹을!Linux 릴리스에 대한 지침을 완료했습니다.😄출력은 Mac OSX 그래픽 버트 설명과 동일합니다.
이것은 이 장편 문장의 결말이지만, 나는 네가 그것이 매우 유용하다는 것을 발견하고, 계속해서 dockerize의 방식으로 모든 일을 완성하기를 바란다.
Reference
이 문제에 관하여(그래픽을 통해 나를 연결하는 방식), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/aemiej/dockerizing-my-way-through-graphics-3hoo텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)