안경잡이개발자

728x90
반응형

윈도우에서 도커(Docker) 공유 폴더 생성 및 도커 머신에서 공유 파일 실행하기

나동빈


  지난 시간에는 도커에서 단순히 파이썬(Python) 개발환경을 콘솔 환경으로 실행해보는 시간을 가져보았습니다. 다만 도커(Docker)에서 특정한 애플리케이션을 실행하여 효과적으로 운용하기 위해서는 공유 폴더 기능이 반드시 필요합니다. 예를 들어 파이썬 스크립트를 미리 작성하거나, 웹 서버까지 구축한 이후에 '배포할 때만' 도커를 이용하는 식입니다. 이번 시간에는 그러한 전반적인 과정을 익히는 시간을 가져보도록 하겠습니다.


  공유 폴더: 도커 머신과 Host OS가 파일을 공유하기 위해 사용하는 폴더를 의미합니다.



  위와 같이 C 드라이브 내에 하나의 폴더를 만들어봅시다. 기본적으로 윈도우에서 도커 툴박스를 실행할 때는 관리자 권한이 아닌 일반 권한으로 실행하기 때문에 기존의 Program Files 폴더에는 쓰기 권한이 없을 수 있습니다. 따라서 저는 C:\Docker 경로를 사용하려고 합니다.



  폴더 생성 이후에는 위와 같이 C:\Docker 폴더로 이동해서 hello.py 스크립트를 작성해봅시다.



  내용으로는 print('hello')를 채우고 종료(ESC) -> :wq!를 입력해 저장하고 나가기를 해줍시다.



  그러면 위와 같이 해당 폴더 내에 hello.py 파일이 생긴 것을 확인할 수 있습니다.



  이제 VirtualBox에서 자신이 사용하고 있는 도커 머신(Docker Machine)의 '설정'을 확인해 '공유 폴더' 경로를 찾습니다.



  기본적으로 윈도우(Windows) 운영체제에서 도커를 설치하면 C:\Users 폴더가 공유 폴더로 자동으로 지정됩니다. 저는 위와 같이 공유 폴더를 효과적으로 사용하기 위해 Docker 폴더를 만들어 C:\Users\Docker를 공유 폴더로 쓰고자 합니다.


  이제 해당 공유 폴더에 hello.py 파일을 복사해줍시다.



docker-machine ls: 존재하는 도커 머신의 목록을 출력합니다.

docker-machine ssh (도커 머신 이름): 특정 도커 머신으로 접속합니다.


  도커 머신에 SSH 명령어를 이용해 접속하는 경우 도커 머신과 Host OS는 완전히 분리됩니다. 도커 머신 내부로 들어온 것입니다.



  도커 머신 내부에서 C 드라이브 사용자(User) 공유 폴더에 접근할 때는 /c/Users/ 경로로 접근해야 합니다. 이는 공유 폴더로 지정이 되었기 때문에 접근이 가능한 것으로 Host OS의 다른 폴더에는 접근할 수 있는 권한이 없습니다.



  이제 다시 도커 머신에서 밖으로 탈출합시다.



docker run -v (호스트 공유 경로):(도커 머신 공유 경로) python (파이썬 명령어)


  위 명령어에서는 -v 옵션이 적용되어 볼륨(Volume) 마운팅 기능이 사용됩니다. 도커(Docker)에서는 항상 호스트(Host)와 도커 머신(Docker Machine)이 :(콜론)을 기준으로 매칭이 이루어집니다. 즉 호스트를 기준으로 했을 때는 아까 우리가 만든 공유 경로인 C:\Users\Docker를, 도커 머신을 기준으로 했을 때는 도커 머신 내부의 /home/Shared 디렉토리를 선택해서 서로 실시간으로 공유하도록 만들어 준 겁니다.


  결과적으로 위 명령어를 실행하면 도커 머신 내부의 /home/Shared 폴더에 hello.py가 존재하는 것처럼 처리되어 hello.py를 실행할 수 있게 된 겁니다. 또한 명령어에서 python 키워드를 두 번 써주었는데, 왼쪽은 python 이미지를 사용하겠다는 의미이며 오른쪽은 python 명령어 그 자체를 의미합니다. 결과적으로 hello.py의 내용이 실행되어 'hello'가 출력된 것을 알 수 있습니다.

728x90
반응형