6-3. VS code에 Docker 연동하기! (with Jupyter notebook)
안녕하세요~
이번글에서는 VS code에 Docker를 연동시키는 방법에 대해서 알아보도록 할거에요~
보통 개발을 하실때 IDE (Integrated Development Environment; 통합개발환경)을 이용하실텐데요. 많은 분들이 Pycharm IDE를 이용하여 개발하시지만, 저 같은 경우에는 VS code를 이용하는편이 훨씬 좋은것 같더라구요.
실제로 Pycharm IDE에 docker를 연동하려다보면 여러 문제가 발생하기 때문에 여기에서는 VS code IDE의 여러 기능과 손쉽게 docker와 연동해서 쓰는 방법에 대해서 설명해보도록 할게요~
<1. VS code 설치>
아래 사이트에 접속한 후 아래 다운로드를 진행하면 실행파일이 다운로드되요. 그리고 해당 실행파일을 install 해줍니다.
https://code.visualstudio.com/
그럼 아래와 같이 VS code가 설치될거에요~
<2. 필요한 기능 추가하기>
VS code의 장점은 여러 프로그램을 쉽게 plug-in 해주어서 써줄 수 있다는 점이에요.
우선 아래 extension 아이콘 (빨간색 네모) 부분을 클릭해서 'remote development'를 검색해주고 install 해줍니다. 'remote development'를 설치해주는 이유는 VS code IDE와 local host의 docker 컨테이너를 연동시켜주기 위함이에요. (install하면 reload 라는 문구가 뜰건데, reload 문구를 클릭해주시면 되요)
두 번째로는 docker를 검색하여 아래 두 가지 ('Docker', 'Docker Explorer')를 설치해줍니다. 'Docker', 'Docker Engine'을 설치해주는 이유는 terminal을 따로 실행시켜주지 않고 VS code IDE에서 GUI형태로 container를 손쉽게 on/off 해주기 위함이에요. (그리고 우측부분을 보면 해당 프로그램이 VS code IDE에 어떻게 될건지 텍스트와 영상으로 자세히 설명되어 있으니 참고하시면 좋아요!)
설치가 마무리되었다면 아래와 같이 plug-in 된 프로그램의 아이콘이 생성될거에요!
<3. VS code와 Docker 연동하기>
'ctrl+shift+p'를 클릭하시고 'remote-containers: attach to Running Container...'을 입력하시고 클릭해주세요.
그럼 아래와 같이 현재 실행되고 있는 container 목록이 뜰거에요. 저는 지금 pytorch라는 docker container 하나만 실행시킨 상태라 pytorch container 하나만 생성되네요. 원하는 container를 클릭해줍니다.
그럼 아래와 같이 새로운 window 창을 통해 VS code IDE가 생겨날거에요. 여기서 "File->Open folder"를 클릭하고,
Docker에서 생성해주었던 container 디렉토리를 찾아 'ok'버튼을 눌러주면
왼쪽 부분에 pytorch container에 들어있던 파일들이 VS code IDE에 연동되는걸 확인하실 수 있으실거에요~
그리고 'test.py'파일을 만들어주고
아래코드를 입력해주고 실행시켜주면??
에러가 생겨요 ㅜㅜ
현재 'pytorch' container에는 locale이 설정이 되어 있지 않은가봐요 (제가 생성한 'pytorch' 컨테이너는 pytorch/pytorch 이미지를 기반으로 하고 있기 때문에 설정이 되어 있지 않은듯해요)
Terminal이 container에 접속한 상태이기 때문에 이곳에다가 'apt-get update', 'apt-get install locales' 명령어를 입력해줍니다.
자세히 안보이시겠지만 다음 명령어를 아래와 같이 입력해주세요
dpkg-reconfigure locales
그리고 계속 엔터를 누르시다가 아래 부분에서
158
3
번호를 순차적으로 입력해주세요.
그리고 실행시키면~
아래와 같이 정상적으로 작동하는걸 볼 수 있어요!
<4. VS code IDE<--> Jupyter notebook>
처음에 VS code IDE에서 jupyter notebook 확장자인 .ipynb 파일을 열면 아래와 같이 실행할 수 없는 형태로 출력이되요. 이 문제를 해결하기 위해 다시 extension에 접속합니다.
그리고 'python'을 설치해주세요. 'Python'을 설치하는 이유는 여러가지가 있지만, 제 경우에는 jupyter notebook을 VS code IDE에서도 자유롭게 쓰고, jupyter notebook으로 만든 .ipynb 파일을 손쉽게 python 파일 확장자 .py로 바꿔주기 위함이에요.(참고로 Python install에 많은 시간이 소요되요 ㅜㅜ)
설치가 완료되면 VS code IDE에서도 jupyter notebook 형태로 코드를 실행할 수 있게 바뀌게 된답니다!
VS code IDE에서 jupyter notebook의 markdown 기능을 이용하려면 똑같이 html 코드 (# GPU)를 입력해주고, 아래 M이라고 되어 있는 부분을 클릭해주시면
Jupyter notebook에서 사용했던것처럼 동일하게 markdown 기능도 사용할 수 있게되요~
<5. VS code IDE에서 Docker 컨테이너 실행 및 종료하기>
윗 부분에서 'Docker', 'Docker explorer' plug-in을 설치해준거 기억하시나요? 설치를 하셨다면, 왼쪽 bar 부분에 docker 아이콘을 클릭하시면 현재 실행중인 container 정보가 뜰거에요.
현재 제 컴퓨터에서는 'pytorch', 'pytorch2' 컨테이너가 실행되고 있네요.
아래 container중 사용하지 않는 컨테이너를 stop시켜주면
아래와 같이 도커가 중단되었다는 표시를 해주게되요. (restart해주면 다시 'pytorch2' container가 실행된답니다.
<6. 재접속하기>
Docker가 아닌 다른 곳에서 VS code IDE를 접속하다가 다시 Docker에 있는 코드들을 작업하려고 할때는 간단하게 접속할 수 있어요.
'F1' 키를 누르고 다시 'remote container ~' 명령어를 통해 아래와 같이 순차적으로 입력해주면 됩니다~
지금까지 VS code IDE에 Docker를 연동하고 그외 VS code IDE 기능들에 대해서 알아보았어요!
앞선 글에서도 Docker를 통해 pytorch를 설치하는 과정이 엄청 길었죠? 그리고 이곳에서도 docker와 연동시키기 위해 여러 작업들을 진행했어요. 또한 사용하시다보면 더 많은 에러가 생기는데, 이러한 부분을 해결하기 위해 docker 관련 내용을 숙지하고 있어야해요. 원래 목적은 docker를 이용하여 편하게 개발환경을 설치해주고 싶었던 것 뿐인데 "어떻게 된게 배우는 비용이 더 많이 들겠네"라는 생각을 하실수 있을거에요.
그래서 어떤 분들은 클라우드에서 개발환경을 구축하고 자신이 구축한 서버를 배포한다고 하더라구요.
그래서 다음에는 클라우드와 관련된 Colab과 GCP (Google Cloud Platform)라는 서비스에 대해서 알아보도록 할게요!