Virtualization platform/Docker

Docker 에서 각 컨테이너 간 데이터 공유

JasonCloud 2023. 3. 7. 13:30
반응형

Docker는 컨테이너 기반 가상

화 기술로, 여러 개의 독립적인 컨테이너를 하나의 호스트에서 구동할 수 있습니다. 이 때 각각의 컨테이너는 독립적인 파일 시스템을 가지고 있기 때문에, 컨테이너 간에 자료를 공유하기 위해서는 다양한 방법을 활용할 수 있습니다. 이번 포스팅에서는 Docker에서 컨테이너 간 자료를 공유하는 방법에 대해 알아보겠습니다.

  1. 볼륨 마운트(Volume Mount)

볼륨 마운트는 호스트의 파일 시스템 경로를 컨테이너의 경로와 연결해주는 방식으로, 컨테이너와 호스트 간에 자료를 공유할 수 있습니다. 이 방법은 다양한 파일 시스템을 지원하며, 컨테이너 간 자료를 공유하는 가장 일반적인 방법 중 하나입니다.

볼륨 마운트를 사용하려면, -v 또는 --mount 옵션을 사용하여 호스트와 컨테이너 간의 경로를 지정해야 합니다. 다음은 호스트의 /home/user 경로를 컨테이너의 /data 경로와 연결하는 방법입니다.

$ docker run -v /home/user:/data -d image_name

2. 공유 네트워크(Shared Network)

공유 네트워크는 여러 개의 컨테이너 간에 네트워크를 공유하는 방식으로, 컨테이너 간에 자료를 공유할 수 있습니다. 이 방법은 다양한 프로토콜을 지원하며, 컨테이너 간의 통신이 필요한 경우에 자주 사용됩니다.

공유 네트워크를 사용하려면, --network 옵션을 사용하여 공유 네트워크를 지정해야 합니다. 다음은 my_network라는 이름의 공유 네트워크를 지정하는 방법입니다.

$ docker network create my_network

컨테이너를 실행할 때, --network 옵션을 사용하여 해당 네트워크를 지정할 수 있습니다.

$ docker run --network my_network -d image_name​

 

3. 환경 변수(Environment Variables)

환경 변수는 컨테이너에서 사용하는 변수로, 컨테이너 간에 환경 변수를 공유하여 자료를 전달할 수 있습니다. 이 방법은 컨테이너 간의 데이터 전달이 필요하지 않은 경우에 유용합니다.

사용하려면, -e 옵션을 사용하여 환경 변수를 지정해야 합니다. 다음은 MY_VAR라는 이름의 환경 변수를 지정하는 방법입니다.

$ docker run -e MY_VAR=value -d image_name

 

환경 변수를 사용하면, 컨테이너에서 해당 변수를 사용하여 자료를 전달할 수 있습니다.

위에서 소개한 방법들은 Docker에서 컨테이너 간 자료를 공유하는 대표적인 방법들입니다. 각 방법마다 장단점이 있으니, 사용 목적에 맞게 선택하여 사용하시기 바랍니다.

반응형