【docker context】 ~VScode에서 원격 환경의 docker 내에 액세스하는 방법 ~

소개



VScode를 사용하여 원격 환경의 docker 환경에 액세스합니다. (연결의 이미지는 그림과 같습니다.)
나는이 방법을 모르고 지금까지 jupyter-lab에서 개발을 해왔지만 py 파일을 수정하고 웹 기반 코드를 편집하는 것은 매우 어려웠습니다. . (docker context를 사용하는 것만으로 간단하게 실현할 수 있다고는..)
매우 도움이 되는 방법이므로, 여러분도 꼭 시험해 보세요!

도움이되었다고 생각하는 분은 꼭 LGTM 주시면 다행입니다 m (_ _) m



목차


  • ssh 연결 설정
  • docker context 설정
  • 원격의 docker에 연결
  • 로컬의 docker로 돌아가기

  • 1. ssh 연결 설정



    클라이언트 측에서 ssh 연결 조건을 구성 파일에 작성

    ~/.ssh/config
    Host home-ubuntu
      HostName home-ubuntu.mydns.jp
      IdentityFile ~/.ssh/home_ubuntu
      User shota
      Port 5504
      TCPKeepAlive yes
      IdentitiesOnly yes
    

    ※ ssh 서버 구축에서 비밀키를 설정하는 경우는, 이하 URL 참조
    htps : // 이 m / s - 이노 우에 기 t / ms / f d7 아 c2996297424 아 1f

    2. docker context 설정



    docker context이란? (이하 문서로부터 인용)

    하나의 Docker CLI에 대해 여러 컨텍스트를 가질 수 있습니다. 각 컨텍스트에는 다양한 클러스터와 노드를 관리하는 데 필요한 엔드포인트 정보와 보안 정보가 포함되어 있습니다. docker context 명령을 사용하면 이러한 컨텍스트를 쉽게 설정하거나 전환할 수 있습니다. 컨텍스트 설정을 한 번 수행하면 최상위 명령 docker context use <컨텍스트 이름>을 실행하기 만하면 컨텍스트를 쉽게 전환 할 수 있습니다.

    다음 명령에서 context를 만들고 전환합니다.
    # 1. contextの追加 
    $ docker context create home-ubuntu --docker "host=ssh://shota@home-ubuntu"
    # home-ubuntu
    # Successfully created context "home-ubuntu"
    
    # 2. contextの切り替え
    $ docker context use home-ubuntu
    # home-ubuntu
    
    # 3. contextの確認
    $ docker context ls
    # NAME                TYPE                DESCRIPTION                               DOCKER ENDPOINT               KUBERNETES ENDPOINT   ORCHESTRATOR
    # default             moby                Current DOCKER_HOST based configuration   # unix:///var/run/docker.sock                         swarm
    # home-ubuntu *       moby
    

    docker 명령으로 이미지와 컨테이너를 확인하면 호스트 측의 docker로 전환하고 있음을 알 수 있습니다.
    $ docker ps
    # CONTAINER ID   IMAGE                     COMMAND       CREATED       STATUS       PORTS     NAMES
    # 451ead9000bf   tensorflow-from-scratch   "/bin/bash"   2 hours ago   Up 2 hours             tensorflow-from-scratch
    

    3. 원격의 docker에 연결



    다음 두 가지 확장을 VScode에 설치



    remote 접속의 확장 아이콘을 클릭해, window 마크 or 폴더 마크를 클릭하면, 방금 전환한 호스트측의 docker conteainer를 볼 수 있다

    액세스 성공!


    4. 로컬의 docker로 돌아가기



    사용할 도커를 로컬로 대상을 반환하는 경우
    $ docker ps
    # CONTAINER ID   IMAGE                     COMMAND       CREATED       STATUS       PORTS     NAMES
    # 451ead9000bf   tensorflow-from-scratch   "/bin/bash"   2 hours ago   Up 2 hours             tensorflow-from-scratch
    
    # 対象を戻す場合
    $docker context use default
    
    $ docker ps -a
    #CONTAINER ID   IMAGE            COMMAND   CREATED       STATUS                        PORTS     NAMES
    #0b0edc2e9df2   conda-init-env   "bash"    2 hours ago   Exited (255) 44 minutes ago             conda-init-env
    #↑異なるcontainerが表示されている
    

    이상입니다!
    도움이되었다고 생각하신 분은 꼭 LGTM 주시면 다행입니다 m (_ _) m

    좋은 웹페이지 즐겨찾기