이전에 VScode를 running docker container에 붙여서 사용하는 방식을 정리한 바 있는데 (링크) 이번엔 VScode를 이용해 원격 PC에서 동작하고 있는 docker container에 접근하는 방법을 기록해보고자 한다.
VScode가 보면 볼수록 편의성이 뛰어난 툴인 것 같다.
Server PC에서 할 일 (원격 연결 당할 PC, container를 갖고 있는 PC)
ssh 세팅을 완벽히 해두어야 한다. ssh로 연결됨을 확인해두면 특별히 VScode 관련해서 할 일은 없다.
ssh 세팅은 이전 글 (링크) 참고해서 하면 되겠다.
계정 이름과 IP 그리고 포트 번호는 꼭 기억해두자.
Client PC에서 할 일 (원격 연결 시도할 PC)
역시나 ssh 세팅은 당연히 되어있어야 한다.
1. Remote development extension 설치
위 extension을 설치하면 된다. VScode 장점이 install 버튼 클릭으로 웬만한게 설치가 된다는 점인데 역시 클릭으로 설치할 수 있다.
버전 문제로 "Can't install XXX extension" 오류가 발생할 수 있는데 이는 정직하게 버전 업데이트해주면 해결된다.
sudo apt update
sudo apt install code
2. Setting.json 작성
(나중에 지워보니 그대로 되길래 이건 필수가 아닌가 싶지만 해두는게 나을 것 같다.)
F1 -> Preference: Open settings (JSON) 을 클릭하면 settings.json 파일이 열린다.
{
"workbench.colorTheme": "Community Material Theme Darker High Contrast",
"workbench.iconTheme": "material-icon-theme",
"editor.formatOnSave": true,
"editor.defaultFormatter": "ms-python.black-formatter",
"explorer.confirmDelete": false,
"remote.SSH.remotePlatform": {"YOUR_IP":"linux"} // write like this
}
내부에 remote.SSH.remotePlatform 항목을 추가해주고 내용은 Server PC의 IP와 운영체제를 적어주면 된다. VScode에서 자동완성해주니 참고해서 쓰면 되겠다.
3. config 작성
(이걸 안하면 절대 연결 안되더라.)
F1 -> Remote-SSH: Connect to Host -> Configure SSH Hosts 를 클릭하면 config 파일이 열린다.
Host ANYNAME
HostName YOUR_SERVER_IP
User YOUR_SERVER_PC_NAME
Port YOUR_PORT
띄어쓰기에 신경쓰면 위와 같이 작성해주면 된다. host 옆에 적힐 내용은 원격연결을 부를 이름이라 아무거나 적어도 되고, HostName의 경우 IP를 정확히 기재해야 한다. User는 Server PC에서 사용하고 있는 계정을 정확히 작성해야 하고, Port는 ssh 설정 시 열어두었던 포트를 기입하면 된다.
4. 연결하기
F1 -> Remote-SSH: Connect to Host 까지 가면 아까 이름지었던 원격 연결이 등장할 것이다. 이를 클릭한다.
그러면 새로운 윈도우가 뜰텐데 상단에 Enter password for XXX@xx.xx.xxx.xx와 같이 비밀번호를 입력하라는 문구가 뜬다.
Server PC 계정에 대한 비밀번호를 입력하면 VScode로 원격 PC에 달라붙는 것까지가 끝난다.
(여기서 오류가 난다면 IP, port, 계정 이름 중 하나가 틀렸거나 config 파일 띄어쓰기 실수한 것이다.)
이 상태에서 좌측 하단에 Remote Explorer를 누르고, Remotes(Tunnels/SSH) 탭을 눌러 Dev Containers로 변경한다.
현재 Server PC에 띄워져 있는 container 목록이 보일텐데, 마우스를 올려보면 Attach in New Window 버튼이 있다.
이를 누르면 또 새로 창이 하나 뜨는데, remote container 안이다.
결론적으로 Server PC에 한 번 붙고, 그 안에서 container에 또 붙는 식으로 창이 2번 새로 뜨면 접근되는 모양이다.
'Knowhow > Docker' 카테고리의 다른 글
Docker image 중 <none>:<none> 지우기 (0) | 2024.05.07 |
---|---|
DockerFile로 효율적으로 이미지 빌드하기 (w/ tip) (0) | 2024.01.29 |
Docker 이미지/태그 명 바꾸기, private server에 push하기 (0) | 2023.07.03 |
DockerFile 내부에서 github private repository clone 하기 (0) | 2023.06.22 |
Docker container 내에서 python 개발할 경우, VScode 활용법 (0) | 2023.05.16 |