블로그로 돌아가기

Docker 컨테이너와 호스트 간에 데이터를 공유하는 방법

Docker 컨테이너와 호스트 간에 데이터를 공유하는 방법

소개

일반적으로 Docker 컨테이너는 특정 기간 – 명령어를 실행하는 데 걸리는 시간 동안만 실행됩니다. 컨테이너 내부에서 사용할 수 있는 데이터는 런타임 동안 컨테이너 내부에서만 액세스할 수 있습니다.

Docker 볼륨은 파일을 쉽게 액세스하고 더 오랜 기간 동안 저장하는 데 사용할 수 있습니다. 예를 들어, Nginx 웹 서버가 있고 감사를 위해 로그를 저장하려는 경우, Docker 볼륨을 사용하여 컨테이너의 로그를 호스트 머신에 저장할 수 있습니다.

이 튜토리얼에서는 Docker 컨테이너 내부와 호스트 머신 간에 데이터를 공유하는 방법을 배웁니다.

사전 요구 사항

이 튜토리얼을 진행하려면 다음과 같은 사전 요구 사항이 필요합니다:

1단계 – 볼륨 바인드 마운트

다음 명령어를 사용하여 현재 사용자의 홈 디렉토리에 logs라는 이름의 디렉토리를 생성하고, 이를 /var/log/nginx에 바인드 마운트할 수 있습니다:

이 명령어에 대한 자세한 정보는 다음과 같습니다:

  • --name=nginx는 쉽게 참조할 수 있도록 컨테이너에 이름을 부여합니다.
  • -d 인수는 프로세스를 분리하여 백그라운드에서 실행합니다.
  • -v hostPath:containerPath는 호스트 경로와 컨테이너 경로를 매핑하여 마운트를 바인드합니다.
  • -p hostPort:containerPort 인수는 컨테이너의 포트를 호스트 포트에 매핑합니다.
  • nginx 라인 끝에 있는 nginx는 컨테이너를 생성하는 데 사용해야 하는 이미지의 이름입니다.
참고: 항상 / 또는 ~/로 hostPath를 시작해야 합니다. 그렇지 않으면 -v 인수가 해당 경로를 볼륨 이름으로 간주하여 마운트를 바인드하지 않습니다.

2단계 – 호스트에서 데이터 액세스

이제 서버에서 Nginx 컨테이너가 실행 중이며, 서버의 5000 포트가 Nginx의 80 포트에 매핑됩니다. 웹 브라우저에서 다음 URL로 포트를 열 수 있습니다:

nginx homepage

~/logs 디렉토리에서 access.log 및 error.log 파일을 볼 수 있습니다. cat 명령어를 사용하여 로그를 확인할 수 있습니다:

또한 호스트 머신에서 로그 디렉토리인 ~/logs를 확인하고 Nginx의 로그 파일을 찾을 수 있습니다. 또한, logs 폴더를 변경하면 컨테이너의 /var/log/nginx 폴더에도 반영됩니다.

결론

이 튜토리얼에서는 Docker 컨테이너 내부와 호스트 머신 간에 데이터를 공유하는 방법을 배웠습니다. 이는 디버깅을 위해 로그 분석이 필수적인 개발 환경에서 매우 중요합니다.

Docker에 대한 더 많은 리소스는 저희 블로그에서 다음 내용을 확인할 수 있습니다:

즐거운 컴퓨팅 되세요!

author

Akshay Nagpal

작성자 · CloudSigma

Preslav Dobrev는 CloudSigma의 크리에이티브 디자이너로서, 전통적이고 혁신적인 마케팅 채널을 활용하여 일관된 비즈니스 정체성을 구축하는 데 중점을 두고 있습니다. 그는 영향력 있는 브랜드 내러티브를 창출하기 위해 예술적 비전과 전략적 마케팅을 결합하는 데 능숙합니다.

댓글

아직 댓글이 없습니다. 첫 번째로 작성해 보세요.