취미가 좋다
[2-2] 원하는 volume을 컨테이너에 연결하기 본문
코드를 변경할 때마다 이미지를 새로 만들고 띄우기는 매우 불편하다.
이 글에서는 코드가 변경되었을 때, 이미지를 새로 생성하지 않더라도 바로 적용될 수 있는 법을 알아본다.
Docker bind mount
docker run -v {host_path}:{container_path} <docker_image>
bind mount의 문법은 위와 같고, 이전에 볼륨을 마운트 하는 것과 유사하다.
이를 사용해서 메모 어플리케이션을 실행한다.
docker run -v "$(pwd)/templates:/templates" -p 80:5000 wellshsdocker-memo:version2
docker run -v ./templates:/templates -p 80:5000 wellshsdocker-memo:version2
로컬에 있는 $(pwd)/templates 와 컨테이너에 있는 /templates 를 연결하였다.
따라서 로컬에 있는 html을 비롯한 코드를 수정하면, 컨테이너에 바로 적용이 되므로, 코드 변화가 웹페이지에 바로 반영된다.
즉, 두 공간이 연결되어 있는 것이다.
로컬에서 작업을 하면 컨테이너에 파일이 변경이 되고, 반대로 컨테이너에서의 작업이 로컬에도 영향을 끼친다.
volume vs bind mount
볼륨을 사용하면 도커에서 관리를 해주기 때문에, Docker에서 권장하는 방법이다.
볼륨은 사용자가 직접 생성, 삭제해야 하는 불편함이 있지만, 도커 상에서 이미지 / 컨테이너 / 네트워크와 비슷한 방식으로 관리가 된다.
하지만 컨테이너화된 로컬 개발 환경을 구성할 때는 바인드 마운트가 유리할 수도 있다.
'Sparta Coding Club > Docker' 카테고리의 다른 글
[2-4] 컨테이너의 리소스 사용량 제한 (0) | 2021.07.31 |
---|---|
[2-3] 여러 컨테이너 연결 (0) | 2021.07.30 |
[2-1] 컨테이너의 데이터를 유지 (0) | 2021.07.30 |
[1-3] 어플리케이션 공유하기 (0) | 2021.07.30 |
[1-2] flask 어플리케이션을 도커로 실행해보기 (0) | 2021.07.29 |
Comments