[UMC 3기] Vibecap

기본적으로 docker container가 실행되는 동안 생성되는 파일은 container가 종료되면 삭제된다.

하지만 volume 또는 bind mount된 디렉토리에 생성된 파일은 영구적으로 저장된다.

mount

Volume

Volume이란 docker가 관리하는 가상의 디렉토리이다.

volume 생성

$ docker volume create <volume-name>

volume 조회

$ docker volume ls

volume에 대한 상세 정보 출력

$ docker volume inpect <volume-name>

(MountPoint : volume과 연결된 container 경로)

생성한 volume을 mount

volume을 mount해야 해당 container가 volume에 접근할 수 있다.
container를 실행하는 docker run 명령의 -v 옵션을 사용한다.

$ docker run -v <volume-name>:/app --name <container-name>

똑같은 명령어로 다른 container에도 동일한 volume을 mount할 수 있다.

volume 삭제

container에 mount된 volume은 삭제할 수 없다.

$ docker rm -f <container-name>
$ docker volume rm <volume-name>

docker volume prune 명령어를 통해 mount되지 않은 모든 volume을 삭제할 수 있다.

bind

host의 특정 디렉토리를 바로 container에 mount한다.

volume과 다르게 docker가 관리하지 않기 때문에 ls, inspect, rm, prune 등의 명령어를 지원하지 않는다.

mount

docker run 명령어의 -v 옵션을 사용한다.

$ docker run -v /home/user/app:/app (이후 생략)

host의 /home/user/app를 container의 /app로 mount한다. (/app이 MountPoint이다.)

example

Vibecap에 적용

/home/ec2-user/vibecap/logs/app/logs에 mount

$ docker container run -v /home/ec2-user/vibecap/logs:/app/logs -d --name vibecap-server -p 8080:8080 mingeun2154/vibecap-server:0.0.0

로그 파일이 host의 지정한 경로에 저장되었다. result

Comments