JuptytryLab in Docker Pandas의 to클립보드를 사용할 수 있습니다.

개요

  • 이번에는 Docker for M1Mac에서 제작된 JupytherLab 환경에서 Pandas의 to클립보드가 움직이기 시작했어요.

  • to_clipborad를 사용할 수 없어 곤란한 경우는 드물지만, Excel에 데이터 프레임을 붙이고 싶을 때 유용하다

  • to_클립보드가 정상적으로 작동하기 전에 가장 간단한 절차를 남겼습니다.(더 좋은 방법이 있다면 알려주세요!)
  • 이번 내용은 Mac에만 적용된다고 생각합니다.
    모든 서류는 다음과 같은 내용을 확인하세요.
    https://github.com/yuiki-iwayama/JupyterLab-Docker
    !
    본 보도와 무관한 부분과 문건에 대해서는 기재 이후 삭제된다.

    전제 지식

  • 기본적인 docker 명령, docker-compose 명령의 사용 방법
  • JupytherLab 사용법
  • 환경 및 파일 구성 시도

  • M1 MacBook Pro
  • macOS Monterey 12.1
  • Docker Desktop 4.6.0 (for Mac)
  • 파일 구조
  • .
    ├── Dockerfile
    ├── init.sh
    └── docker-compose.yml
    

    절차.


    프로그램 개요

  • XQuartz install을 Mac에 설정
  • Docker file 만들기
  • init.제작sh
  • docker-compose.제작yml
  • build 용기
  • to_JupytherLab으로 clipboard 이동
  • 1. XQuartz install을 Mac에 설정합니다[1].


    Docker 컨테이너에 xclip 명령을 사용하기 위해 호스트에 XQuartz를 설치하여 설정합니다.
  • Mac용 X WindowSystem 설치XQuartz
  • 설치가 끝난 후 로그아웃한 후 "Finder→응용 프로그램→유틸리티→XQuartz"로 다시 시작합니다
  • "XQuartz→환경 설정→안전"을 통해 네트워크 클라이언트로부터의 연결을 확인합니다.

  • 2. Docker file 만들기


    이어서 쓰세요Dockerfile.
    Dockerfile
    Dockerfile
    FROM continuumio/anaconda3:latest
    
    # 必要なパッケージを入れる.
    RUN apt-get update && apt-get install -y --no-install-recommends \
        fonts-ipaexfont \
        libgl1-mesa-dev \
        build-essential \
        ca-certificates \
        cmake \
        gcc \
        g++ \
        openssh-client \
        bash-completion \
        vim \
        xclip
    
    # Debianの設定
    RUN apt-get -y install locales && \
        localedef -f UTF-8 -i ja_JP ja_JP.UTF-8
    ENV LANG ja_JP.UTF-8
    ENV LANGUAGE ja_JP:ja
    ENV LC_ALL ja_JP.UTF-8
    ENV TZ JST-9
    ENV TERM xterm
    
    RUN apt-get autoremove -y \
      && apt-get clean
    WORKDIR /work
    
    COPY init.sh /usr/bin
    CMD ["/bin/bash", "/usr/bin/init.sh"]
    
  • apt-get install에 xclip[2] 설치
  • 3. init.만들다


    JupytrerLab을 시작하는 명령어init.sh 파일을 씁니다.
    init.sh
    init.sh
    #!/bin/bash
    
    source /etc/bash_completion
    jupyter lab --ip=0.0.0.0 --allow-root --LabApp.token=''
    
  • jupyter lab --ip=0.0.0.0 --allow-root --LabApp.token=''에서 JupytherLab이 일어서다
  • 4. docker-compose.만들다


    컨테이너 가동에 필요한 docker-compose.yml를 적으세요.
    docker-compose.yml
    docker-compose.yml
    version: "3"
    services:
      notebook:
        build:
          context: .
          dockerfile: Dockerfile
        environment:
          - DISPLAY=${HOST_NAME}:0
        container_name: "jupyterlab"
        ports:
          - 8888:8888
        restart: always
        volumes:
          - ./work:/work
          - ~/.Xauthority:/root/.Xauthority
    
  • 컨테이너 내의 환경 변수DISPLAY에 지정<ホスト名>:0(호스트 측의 호스트 이름 취득 등을 뒤에 서술함)
  • 컨테이너 측면의 홈 디렉토리에 호스트 측면~/.Xauthority을 설치
  • 5.build 컨테이너


    컨테이너를 포장할 수 있는 환경이 생겨서 드디어 컨테이너를 가동해야 한다.
  • MacOSX의 호스트 이름은 동적으로 변하지 않는 방식으로 3개의 호스트 이름을 동일하게 설정합니다. (아무것도 만지작거리지 않은 사람은 기본적으로 HostName을 설정하지 않습니다)$ sudo scutil --set ComputerName <ホスト名> $ sudo scutil --set HostName <ホスト名> $ sudo scutil --set LocalHostName <ホスト名>
  • build 용기 이전$ export HOST_NAME=$(hostname)(호스트 이름을 용기에 전달하기 위해)
  • $ docker-compose up -d --build
  • 일어나서 브라우저localhost:8888에 방문하여 JupytherLab이 순조롭게 시작될 수 있는지 확인
  • 6. to_JupytherLab으로 clipboard 돌려보기


    Juptytry Lab이 일어섰는데, 실제로는 판다스였다.to_클립보드가 정상적으로 작동할 수 있는지 확인하세요.
  • Launcher에서 Python 3
  • 선택

  • "Finder→응용프로그램→유틸리티→XQuartz"를 사용하여 XQuartz 응용 프로그램을 다시 시작합니다
  • .
  • 적당히 데이터 프레임 만들기, to클립보드를 거치면 잘 붙었는지 확인할 수 있습니다.

  • 참고 자료

  • X11 Forwarding 후 Mac에 GUI 표시
  • MacOSX에서 호스트 이름이 자동으로 변경됨
  • 각주
    솔직히 이 일대의 구조에 대해 잘 모르니 참고하세요Docker로 GUI를 표시할 때의 구조 정보
    Docker로 만든 컨테이너의 OS는 Linux, Linux에서 to클립보드를 사용하려면 xclip↩︎를 설치하라고 적혀 있습니다.

    좋은 웹페이지 즐겨찾기