[Docker] docker network 사용해 컨테이너 간 통신하는 방법 완벽 정리
·
Docker
컨테이너간 통신컨테이너는 외부 애플리케이션 혹은 호스트 머신과는 자유롭게 통신할 수 있지만, 컨테이너 간에는 기본적으로 서로 통신할 수 없다. 컨테이너끼리 통신할 수 있도록 하기 위해서는 컨테이너 내부에 네트워크를 만든 후 통신할 컨테이너들이 같은 네트워크에 속해 있도록 해야 한다. 지금부터 이 방법을 알아보자. Docker의 네트워크 드라이버 종류와 bridge 드라이버Docker는 다양한 네트워크 드라이버를 지원한다. 대표적으로 bridge, host, none 드라이버가 있으며 이 외에도 overlay, macvlan 같은 드라이버가 있다. 하지만, 대부분의 경우는 bridge를 사용해 통신하며 이곳에서는 bridge 드라이버를 사용하는 방법에 대해 다룬다.bridge 드라이버는 Docker의 기본..
[Docker] Dockerfile내부, .env 파일 혹은 터미널을 사용해 환경 변수 설정하는 방법 한 번에 정리하기
·
Docker
Docker의 환경 변수Docker는 컨테이너를 실행하면서 환경 변수를 쉽게 설정하고 관리할 수 있는 방법을 제공한다. 환경 변수는 애플리케이션의 동작을 제어하거나, 민감한 정보(예: 데이터베이스 연결 정보, API 키 등)를 외부에서 주입할 때 유용하며, Docker에서는 이를 Dockerfile내부, .env 파일 혹은 터미널을 통해 설정할 수 있도록 한다. 지금부터 각 방법을 살펴보자. Docker 환경 변수 설정하기Dockerfile에 설정하기Dockerfile에 환경 변수를 설정하기 위해서는 다음과 같이 사용하면 된다.ENV [KEY] [VALUE] 예를 들어 PORT라는 환경 변수를 8080으로 설정하고 싶은 경우 다음과 같이 사용하면 된다.# 환경변수 설정ENV PORT=8080 .env ..
[Docker] .dockerignore 사용해 컨테이너에 복사되지 말아야 할 파일 정의하기
·
Docker
.dockerignore을 사용하지 않을 때의 문제점앞선 글 에서 만들어진 컨테이너 내부를 보면 다음과 같은 파일들이 추가된 것을 볼 수 있다. 이 중 build 폴더와 .git 폴더 그리고 .idea 폴더는 내부에서 자동으로 생성되거나 스프링 앱을 실행하는데 전혀 사용되지 않는 폴더들로 컨테이너로 복사하지 않아도 된다. 이런 폴더들을 복사하지 않기 위해 Dockerfile에서 COPY를 사용할 때 세밀하게 제어해도 괜찮지만, 가장 좋은 방법은 .dockerignore 파일을 사용하는 것이다. .dockerignore 사용해 복사되지 말아야 할 파일과 폴더 정의하기.dockerignore는 git의 .gitignore과 매우 비슷하다. 단순히 내부에 컨테이너로 복사되지 말아야 하는 경로나 파일을 추가하면..
[Docker] Bind Mount 통해 호스트 머신의 경로를 컨테이너 경로와 연결하기
·
Docker
Bind Mount의 필요성Docker는 컨테이너화된 애플리케이션을 실행할 때 데이터의 유연한 관리와 공유를 지원하기 위해 여러 데이터 관리 방법을 제공한다. 대표적으로 앞서 다룬 Anonymous Volume과 Named Volume이 있다. 하지만 이 두 볼륨은 볼륨을 생성해 컨테이너의 디렉토리와 연결하는 방식을 사용하며, 호스트 머신의 경로를 컨테이너의 디렉토리와 연결하지는 못한다.하지만 개발을 하다 보면, 호스트 머신의 변경 사항이 곧바로 애플리케이션에 반영돼야 하는 경우가 있다. 이런 문제를 해결하기 위해 Docker는 Bind Mount라는 기능을 제공한다. Bind Mount는 호스트 머신의 디렉터리를 컨테이너의 특정 경로에 직접 연결해 데이터를 공유하거나 관리할 수 있도록 하는 기능으로, ..
[Docker] Named Volume 이란 무엇인가? 사용 방법과 특징 정리
·
Docker
Named Volume 이란?Named Volume은 사용자가 직접 이름을 지정해 관리하는 Docker 볼륨이다. 이 볼륨은 데이터를 영구적으로 저장하는 데 사용되며, 익명 볼륨과 달리 컨테이너의 수명과 독립적이다. 이름이 지정되어 있기 때문에 여러 컨테이너에서 쉽게 공유하거나 참조할 수 있다. Named Volume 생성하고 사용하기Named Volume 생성하기Named Volume은 다음 명령어를 통해 생성할 수 있다.docker volume create [Volume Name] 예를 들어 다음과 같이 "docker volume create postvolume" 명령어를 실행해 postvolume이라는 이름을 가진 Named Volume을 생성할 수 있다.  Named Volume 사용하기컨테이너를..