vscode(비주얼스튜디오 코드)로 원격에 있는 서버에 설치된 도커에 접속할 필요성이 있을 수 있다. 가령 예를 들면, 원격서버에 딥러닝 도커 이미지를 설치했는데, 노트북에서 접속할 필요가 있을 때 해당되겠다. vscode에서 원격접속이 지원되니, 아래 방법으로 원격서버의 도커에 접근하고, 코드를 수정할 수 있다.
전체적인 과정은 아래와 같다
- vscode에 원격접속에 필요한 확장 팩 설치한다. (Remote Development)
- 접속하고자 하는 클라이언트(가령 노트북)에 도커를 설치한다.
- 원격서버의 도커에 SSH 접속이 가능하도록 설정한다.
- vscode에서 접속정보를 수정하고, 접속한다.
각 순서대로 설정하는 방법을 적어본다.
remote development 설치한다.
원격서버에 접속을 원하는 클라이언트(가령 노트북)의 vscode에 원격접속을 위한 패키지를 설치해야 한다. 왼쪽 메뉴 vscode extension 에서 remote development 검색하고, 설치(install)한다.
docker를 설치한다
윈도우 10 또는 11에 docker를 설치하고, 재부팅한다.
아래 도커 사이트에서 도커 데스크톱을 다운로드 받아서 설치해도 되고, Scoop이나 Winget 으로 설치해도 무방하다.
도커 데스크톱이 설치되지 않으면, 원격서버의 도커에 접속할 수 없다.
도커 데스크톱 다운로드
https://www.docker.com/products/docker-desktop
docker에서 ssh 서비스를 활성화한다
접속하고자 하는 클라이언트의 vscode에 remote development 확장 프로그램을 설치했는데, 이때 원격 접속은 SSH로 접속하기 때문에, 원격서버의 docker에서 SSH 서비스를 활성화해야 한다.
apt-get update
apt-get install ssh
apt-get install openssh-server
원격서버에서 docker에 접속한 후, SSH 서비스를 활성화한다.
만약, 이미 SSH 서비스가 활성화되어 있으면 따로 설치하지 않아도 무방하다.
vi /etc/ssh/sshd_config
원격서버의 docker에서
/etc/ssh/sshd_config 파일을 열어, SSH 접속 포트로 설정된 부분에 주석이 있으면 해제한다. SSH는 기본으로 22번 포트로 사용하며, 만약 포트 번호를 바꿨다면, 바꾼 포트 번호를 찾아 주석을 처리한다. 이 작업은 SSH 포트로 접속할 수 있도록 길을 내주는 단계이다.
service ssh start
docker에서 service ssh start 를 입력하여, SSH 서비스를 시작시킨다.
vscode에 docker host 설정
클라이언트의 vscode에서 원격서버의 docker에 접속하기 위해서는 vscode 세팅에서 접속 정보를 저장해둬야 한다.
- vscode 에서 Ctrl + Shift + P 를 누르고,
- Preferences: Open Settings (JSON) 검색하고 선택한다.
- 설정 부분에 “docker.host”: “ssh://아이디@IP주소”, 를 입력하고, 저장한다.
- 아이디는 docker 접속 아이디이고,
- IP주소는 docker 의 IP주소이다.
{
"docker.host": "ssh://<ID>@<IP_Address>",
"editor.fontFamily": "'D2Coding ligature', Consolas, 'Courier New', monospace",
"editor.fontSize": 16,
"remote.SSH.remotePlatform": {
"xxx.xxx.xxx.xxx": "linux",
"xxx.xxx.xxx.147": "linux"
}
}
위 코드에서 굵게 표시된 부분만 추가하거나 수정하면 된다. 만약 SSH포트 번호를 변경했다면 <IP_Address>뒤에 포트번호를 추가한다.
예) “ssh://<ID>@<IP_Adress> :포트번호”
docker container 접속
이제 접속을 위한 세팅은 마무리되었다.
- 클라이언트의 vscode 에서 Ctrl + Shift + P 를 누르고,
- remote-container: attach to running container 검색하고 및 선택한다.
- 패스워드를 입력하라는 창이 뜨는데, docker 패스워드를 입력한다.
잠시 후(경험상 15초 정도),
docker 컨테이너(container) 리스트가 뜨면 해당하는 docker 컨테이너를 선택한다.
접속 완료!!
vscode 에서 터미널을 열면, docker에 root 로 접속된 것을 확인할 수 있다.
이제 vscode에서 docker에 있는 코드를 수정하면 된다.