CodeGym /행동 /Docker SELF /컨테이너에 볼륨 마운트하기

컨테이너에 볼륨 마운트하기

Docker SELF
레벨 19 , 레슨 2
사용 가능

3.1 볼륨 마운팅 기본

볼륨(volumes)을 컨테이너에 마운트하는 건 Docker의 핵심적인 기능 중 하나야. 이 기능을 통해 데이터를 컨테이너 외부에 저장하고, 데이터를 지속적으로 보관하고 접근 가능하게 만들어줘. 볼륨은 설정 파일, 데이터베이스, 로그, 기타 중요한 데이터를 저장하는 데 사용될 수 있어. 이번 강의에서는 컨테이너에 볼륨을 마운트하는 방법과 실습 예제를 다룰 거야.

볼륨 마운팅 기본

앞에서 말했듯이, 볼륨은 컨테이너의 수명 주기와 독립적으로 존재해. 볼륨은 호스트 머신의 특정 디렉토리에 저장되고, 모든 컨테이너에 연결될 수 있어.

볼륨을 마운트하는 명령어

볼륨은 컨테이너를 실행할 때 -v 또는 --mount 파라미터를 사용해 마운트해.

3.2 매개변수 -v

-v 매개변수 사용 예제

1. 볼륨을 컨테이너에 마운트하기

볼륨을 생성하고 이를 컨테이너에 마운트하기:

볼륨 생성:

Terminal

docker volume create my_volume

볼륨을 마운트하며 컨테이너 실행하기:

Terminal

docker run -d --name my_container -v my_volume:/app nginx

이 예제에서 my_volume 볼륨은 my_container 컨테이너의 /app 디렉토리에 마운트됨

2. 여러 볼륨 마운트하기

하나의 컨테이너에 여러 볼륨을 마운트할 수 있음:

Terminal

docker run -d --name my_container -v volume1:/app/data -v volume2:/app/logs nginx

이 예제에서 volume1 볼륨은 /app/data 디렉토리에, volume2 볼륨은 /app/logs 디렉토리에 마운트됨.

3.3 파라미터 --mount

파라미터 --mount는 볼륨을 마운트하는 좀 더 세부적인 방법을 제공하며, 다양한 파라미터를 지정할 수 있어.

1. --mount를 사용한 볼륨 마운트

Terminal

docker run -d --name my_container --mount source=my_volume,target=/app nginx

이 예제는 -v를 사용한 이전 예제와 비슷하지만, 더 자세한 문법을 사용해.

2. 추가적인 파라미터를 사용한 마운트

Terminal

docker run -d --name my_container --mount source=my_volume,target=/app,readonly nginx

이 예제에서는 볼륨이 읽기 전용(readonly) 모드로 마운트돼.

3.4 실습 예제

예제 1: 데이터베이스를 위한 볼륨 사용

데이터베이스 데이터를 저장하기 위한 볼륨 생성 및 사용.

볼륨 생성:

Terminal

docker volume create db_data

볼륨을 마운트하여 데이터베이스 컨테이너 실행:

Terminal

docker run -d --name postgres -e POSTGRES_PASSWORD=mysecretpassword -v 
db_data:/var/lib/postgresql/data postgres

이 예제에서는 PostgreSQL 데이터베이스 데이터가 db_data 볼륨에 저장된다.

예제 2: 설정 파일을 위한 볼륨 사용

설정 파일을 저장하기 위한 볼륨을 생성하고 이를 컨테이너에 마운트하기.

볼륨 생성:

Terminal

docker volume create config_data

설정 파일을 볼륨에 복사하기:

Terminal

docker run --rm -v config_data:/app busybox sh -c "echo 'configuration data' > /app/config.txt"

설정 파일을 위한 볼륨과 함께 컨테이너 실행:

Terminal

docker run -d --name my_app -v config_data:/app/config nginx

이 예제에서는 설정 파일이 config_data 볼륨에 저장되고, 컨테이너의 /app/config 디렉토리에 마운트된다.

예제 3: 컨테이너 로그

컨테이너 로그를 저장하기 위한 볼륨을 생성하고 이를 컨테이너에 마운트하기.

볼륨 생성:

Terminal

docker volume create logs_data

로그를 위한 볼륨을 마운트하여 컨테이너 실행:

Terminal

docker run -d --name my_app -v logs_data:/var/log/nginx nginx

이 예제에서는 Nginx 로그가 logs_data 볼륨에 저장된다.

3.5 볼륨 내용 확인

볼륨의 내용을 확인하려면 임시 컨테이너에 마운트해서 확인하면 돼.

예제

볼륨을 마운트한 임시 컨테이너 실행:

Terminal

docker run --rm -v my_volume:/app busybox ls /app

이 예제는 my_volume 볼륨의 내용을 보여줄 거야.

볼륨 삭제

더 이상 사용되지 않는 볼륨 삭제하기.

예제

볼륨 삭제:

Terminal

docker volume rm my_volume

만약 컨테이너에서 볼륨을 사용 중이라면, Docker가 에러를 띄울 거야. 볼륨을 사용하는 컨테이너가 중지되고 삭제되었는지 확인해야 해.

코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION