VScode에서 원격 대상 환경 또는 원격 대상 컨테이너 환경에서 개발하는 방법
7107 단어 gcp우분투VSCode도커Remote-SSH
소개
VScode를 사용해 원격처의 환경상에서 개발이 가능하다는 것을 들었으므로 시험해 보았다.
실행 환경
【로컬 PC】
・Windows 10 pro
・VScode 1.50.1
· · OpenSSH_for_Windows_7.7p1, LibreSSL 2.6.5
【원격처의 환경】
・Ubuntu 18.04 LTS(GCP상)
・도커 19.03.13
・python3계
절차
1. 원격 대상 서버 설정
2. 로컬 PC 패키지 추가 및 설정 편집
3. VScode에서 원격 대상 호스트로 SSH 연결
4. VScode에서 원격 대상 컨테이너에 SSH 연결
1. 원격 대상 서버 설정
SSH 키 설정
GCP의 VM 인스턴스에 SSH 연결할 수 있도록 구성
【GCP의 VM 인스턴스에 로컬 PC로부터 SSH 접속】 를 참고로.
※키의 생성은 이 타이밍으로 하고 있다. 공개키는 서버측에 업로드. 비밀 키는 나중에 사용할 것입니다.
파이썬 설치
※VScode로부터의 접속 후, 원격처의 환경을 사용할 수 있는지 확인하기 위해
# python3系がインストールされているか確認
$ sudo python --version
$ sudo python3 --version
# python3系がなければ、以下を実行
$ sudo apt update
$ sudo apt install -y python3
$ sudo apt install -y python3-pip
Python 패키지 설치
$ pip3 install numpy pandas beautifulsoup4
# ※pythonのパッケージは、後でチェックすることが目的なので、一応ローカルPCに入っていないパッケージを入れておく。
docker 설치 및 컨테이너 생성
docker 설치
【Docker 컨테이너 내의 Ubuntu에서는 systemctl을 사용할 수 없다】의 순서 1을 참고로.
※docker의 버전은
docker=ce=5:19.03.14~3-0~ubuntu-bionic
컨테이너 환경에 직접 SSH 연결하기 위한 키 쌍 준비
키의 생성은 최초의 순서와 같다. ※호스트와 같은 열쇠라도 좋지만, 이번은 별도 작성.
컨테이너 만들기
$ sudo docker container run -it -d -p 20022:22 --name test_con python:3
# コンテナに入ってパッケージをインストール
$ sudo docker container exec -it test_con /bin/bash
컨테이너의 명령
apt update
apt install nano
# SSHの鍵設定
apt install -y openssh-server
mkdir /var/run/sshd
mkdir /root/.ssh/
nano /root/.ssh/authorized_keys
# ※公開鍵の中身をコピー
## pythonのパッケージインストール
pip install numpy pandas peewee
# SSHサーバ起動
/usr/sbin/sshd -D
2. 로컬 PC 패키지 추가 및 설정 편집
VScode를 시작하고 Remote - SSH 설치
로컬 PC의 .ssh/config 파일 편집
설정 파일의 내용은 이하를 참고로 편집.
.ssh/config
Host gcp
HostName 【GCPの外部IP】
User 【SSH接続するユーザー名】
Port 【ポート番号】 ※記載がない場合、22番ポートとなる。
IdentityFile 【秘密鍵までのパス】
명령 프롬프트에서 SSH 연결할 수 있는지 확인
명령 프롬프트
> ssh gcp
# 恐らく、パスフレーズの入力を求められる。
※1) 비밀키의 액세스 제한이 너무 느슨하면 에러가 된다.
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions for 'C:\\Users\\秘密鍵までのパス' are too open.
※2) 리모트처의 Publickey의 액세스 권한이 느슨하면 접속할 수 없다. [700] 또는 [744]로 설정해야합니다.
Permission denied, please try again.
3. VScode에서 원격 대상 호스트로 SSH 연결
VScode에서 SSH 연결
새 창이 열리므로 대상 호스트의 OS 범주에서
Linux
를 신속하게 선택합니다.※초회의 접속시, OS카테고리 선택을 실시하지 않으면
Could not establish connection to ....
가 되어 접속할 수 없다.bash에서 원격 대상 환경을 사용할 수 있는지 확인
처음 접속한 상태에서는 TERMINAL이
1.install
가 되어 있기 때문에, 「+」를 클릭해 bash를 추가한다.원격 대상 환경을 제대로 사용할 수 있는지 시험에 확인
$ python3
>>> import numpy
>>> from bs4 imoprt BeautfulSoup
실행할 수 있으면 OK!
4. VScode에서 원격 대상 컨테이너에 SSH 연결
로컬 PC의 .ssh/config 파일에 컨테이너 연결 정보 추가
설정 파일의 내용은 이하를 참고로 편집.
.ssh/config
Host gcp
HostName 【GCPの外部IP】
User 【SSH接続するユーザー名】
Port 【ポート番号】 ※記載がない場合、22番ポートとなる。
IdentityFile 【秘密鍵までのパス】
Host gcp_container
HostName 【GCPの外部IP】
User 【SSH接続するユーザー名】 ※今回は、コンテナ内にユーザー作成などしていないため [root]
Port 【ポート番号】 ※ポートマッピングしたホスト側のポート番号(今回の場合だと20022)
IdentityFile 【秘密鍵までのパス】 ※上記のホストとは別の鍵
※일단 이 단계에서, 커맨드 프롬프트나 TeraTerm등으로부터의 SSH 접속을 시험한다.
3단계와 마찬가지로 VScode에서 SSH 연결을 수행하여 컨테이너 환경을 제대로 사용할 수 있는지 확인
접속 완료 후, TERMINAL보다 이하를 실행.
$ python
>>> import pandas
>>> imoprt peewee
실행할 수 있으면 OK!
Reference
이 문제에 관하여(VScode에서 원격 대상 환경 또는 원격 대상 컨테이너 환경에서 개발하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/smiler5617/items/3b37d5800be31a543d74텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)