[파이썬] 도커 컨테이너와 호스트 간 데이터 볼륨 설정

도커는 애플리케이션의 실행 환경을 격리시켜주는 컨테이너 기술입니다. 이는 애플리케이션의 이식성과 확장성을 높여주는 장점이 있습니다. 도커 컨테이너는 호스트 시스템과 분리되어 실행되기 때문에 컨테이너 내부와 호스트 사이에서 데이터를 주고받아야 할 때가 있습니다.

이번에는 도커 컨테이너와 호스트 간의 데이터 볼륨을 설정하는 방법에 대해 알아보겠습니다. 볼륨은 컨테이너 내부의 파일 시스템과 호스트 시스템의 디렉토리를 연결해주는 역할을 합니다. 이를 통해 데이터를 호스트와 컨테이너 간에 공유하거나 데이터를 영속적으로 저장할 수 있게 됩니다.

1. 호스트 디렉토리와 컨테이너 볼륨 매핑

도커에서는 -v 옵션을 사용하여 호스트 디렉토리와 컨테이너의 볼륨을 매핑할 수 있습니다. 아래의 예제는 호스트의 /data 디렉토리를 컨테이너의 /app/data 디렉토리로 매핑하는 방법입니다.

$ docker run -v /data:/app/data myapp

이렇게 설정하면 호스트와 컨테이너는 동일한 파일 시스템을 공유하게 됩니다. 호스트의 파일을 수정하면 컨테이너에서도 수정된 내용이 반영되고, 컨테이너에서 생성한 파일은 호스트에서도 확인할 수 있습니다.

2. 볼륨 컨테이너 사용

볼륨 컨테이너는 볼륨 디렉토리를 생성하고 이를 컨테이너에 매핑하는 방식입니다. 볼륨 컨테이너를 사용하면 볼륨을 여러 컨테이너에 공유할 수 있습니다.

먼저, 볼륨 컨테이너를 생성합니다.

$ docker create -v /data --name myvolume busybox

위의 명령어는 myvolume이라는 이름의 볼륨 컨테이너를 생성하고 호스트의 /data 디렉토리와 매핑합니다.

그 다음, 애플리케이션 컨테이너를 실행하면서 볼륨 컨테이너를 사용합니다.

$ docker run --volumes-from myvolume myapp

이렇게 설정하면 myapp 컨테이너는 myvolume 볼륨 컨테이너의 /data 디렉토리를 공유합니다. 볼륨 컨테이너를 사용하면 여러 컨테이너에서 동일한 데이터를 공유하고 영속적으로 저장할 수 있습니다.

3. 도커 볼륨 사용

도커는 볼륨을 관리하기 위한 별도의 기능을 제공합니다. -v 옵션을 사용하여 도커 볼륨을 생성하고 컨테이너와 매핑할 수 있습니다.

$ docker volume create myvolume
$ docker run -v myvolume:/app/data myapp

위의 예제는 myvolume이라는 이름의 도커 볼륨을 생성하고 이를 컨테이너의 /app/data 디렉토리에 매핑합니다. 도커 볼륨은 호스트 시스템의 특정 디렉토리에 저장되므로 컨테이너가 삭제되어도 데이터가 유지됩니다.

마무리

도커 컨테이너와 호스트 간 데이터 볼륨 설정은 애플리케이션에서 데이터를 공유하거나 영속적으로 저장해야 할 때 유용한 기능입니다. 이번 포스트에서는 호스트 디렉토리와 컨테이너 볼륨 매핑, 볼륨 컨테이너 사용, 도커 볼륨 사용에 대해 알아보았습니다. 도커의 다양한 기능을 활용하여 애플리케이션을 보다 효율적으로 관리할 수 있습니다.