Technique

Docker를 이용한 Windows에서 Linux 개발환경 구축 (feat, Django) 3

JAY-GO 2017. 11. 13. 23:28
반응형

이번 포스팅에서는 docker의 Volume 기능을 이용하여 호스트에서 진행중인 프로젝트 폴더를 이미 생성한 컨테이너의 폴더에 연동 시키고 이를 실행해 보도록 하겠습니다.


호스트 프로젝트 폴더와 연동시킬 폴더를 컨테이너에 하나 만듭니다.

mkdir 로 폴더를 만들고, ls로 폴더들을 확인 합니다.

# mkdir project

# ls

bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  project  root  run  sbin  srv  sys  tmp  usr  var


project 폴더가 생성되었음을 확인할 수 있습니다.


이제 컨테이너의 project 폴더를 호스트와 연동할 수 있도록 해보겠습니다.

지금까지 셋팅된 컨테이너를 이미지로 만들고, 이를 이용해 다시 컨테이너를 구동 하면서 Volume 셋팅을 추가하도록 하겠습니다.


호스트에서 docker 명령을 사용해야 하기 위해 kitematic에서 DOCKER CLI를 실행시키도록 합니다. 이곳을 통해 Docker 명령들을 실행할 수 있습니다.



- commit 명령을 이용하여 현재 컨테이너 환경을 이미지로 생성합니다.

PS C:\Program Files\Docker Toolbox> docker commit ubuntu_base project_set

sha256:da920c210f91e5a2871ec5a54364cb81d768d25c91b34370c9daf06e64ed70f3

컨테이너(ubuntu_base)의 환경을 이미지(project_set)으로 생성하였습니다.


- images 명령어로 이미지가 생성되었음을 확인할 수 있습니다.

아직 kitematic에서는 실시간으로 이미지 생성 내역을 확인할 수는 없습니다.

PS C:\Program Files\Docker Toolbox> docker images

REPOSITORY          TAG                 IMAGE ID            CREATED              SIZE

project_set         latest              da920c210f91        About a minute ago   484MB


- run 명령어로 컨테이너를 생성합니다. 이 과정에서 각종 옵션을 넣을 수 있으며, Volume 옵션을 통해 컨테이너의 project 폴더를 연동 가능하게 활성화 해봅시다

PS C:\Program Files\Docker Toolbox> docker run -it -d --volume /project --name dev_go project_set

5a31992ded63858b32e4d0c0d9420e4ae53ac7df2149d5292a27db9ac0ac93c3

이미지(project_set)을 이용하여 컨테이너(dev_go)를 생성하였습니다.

it 옵션은 컨테이너와 터미널로 입출력이 가능토록 합니다.

d 옵션은 컨테이너를 백그라운드로 실행되도록 합니다.

volume 옵션은 컨테이너의 특정 폴더를 호스트와 연동할 수 있도록 해줍니다. 여기서는 컨테이너의 project 폴더를 연동 가능하도록 설정하였습니다.


kitematic에서 실행된 컨테이너를 확인할 수 있습니다. 우리가 입력한 Volume 옵션에 의해 화면이 활성화 된것을 볼 수 있습니다.

이제 이 폴더를 호스트에 원하는 폴더와 연동을 하면 됩니다.

활성화된 Volume 목록에 설정 버튼을 클릭하여 Volume 설정 화면에서 호스트의 연동할 폴더를 선택합니다.

( C:\users\계정\ 아래 폴더 이외에는 권한 오류로 인하여 선택이 불가능 할수도 있습니다.)


이제 연동시킨 호스트의 폴더와 컨테이너의 폴더의 내용이 일치하는지 확인 해 봅시다.


- 연동시킨 호스트 폴더의 내용입니다. Django 최초 프로젝트를 생성 해 놓았습니다.


- 컨테이너 내부에서 project 폴더의 내용을 확인 합니다.

# cd project

# ls

dev_go  manage.py


호스트와 컨테이너의 연동한 폴더들이 같은 내용으로 연동되어 있음을 확인할 수 있습니다. 두 폴더 간에는 서로 수정된 사항이 동시에 반영됩니다.


- 컨테이너에서 폴더를 하나 만들면

# mkdir hello

# ls

dev_go  hello  manage.py

-호스트에도 그대로 연동됩니다


다음 포스팅에서는 연동된 프로젝트를 컨테이너에서 실행해 보고, 이를 호스트의 웹에서 접속해 보도록 하겠습니다.

반응형