[Docker] 컨테이너와 호스트 머신 간 통신하는 방법 한 번에 정리하기
·
Docker
컨테이너와 호스트 머신 간 통신 시 생기는 문제우리가 로컬에서 여러 애플리케이션을 실행하면, 해당 애플리케이션들과 통신하기 위해 localhost를 사용한다. 하지만, 컨테이너 위에서 실행되는 애플리케이션은 격리된 네트워크망 내부에 있기 때문에 localhost를 사용하면 호스트 머신에서 실행되는 애플리케이션과 통신하지 못한다. 호스트 머신에서 실행 중인 웹 애플리케이션과 Mongo DB의 통신을 생각해보자. Mongo DB가 27017번 포트를 점유해 실행된다고 할 때, 웹 애플리케이션에서 Mongo DB에 접속하기 위해서는 다음 주소를 사용하면 된다.mongodb://localhost:27017/[데이터 베이스 이름] 하지만 컨테이너 위에서 실행 중인 웹 애플리케이션과 호스트 머신에서 실행 중인 Mo..
[Docker] Bind Mount 통해 호스트 머신의 경로를 컨테이너 경로와 연결하기
·
Docker
Bind Mount의 필요성Docker는 컨테이너화된 애플리케이션을 실행할 때 데이터의 유연한 관리와 공유를 지원하기 위해 여러 데이터 관리 방법을 제공한다. 대표적으로 앞서 다룬 Anonymous Volume과 Named Volume이 있다. 하지만 이 두 볼륨은 볼륨을 생성해 컨테이너의 디렉토리와 연결하는 방식을 사용하며, 호스트 머신의 경로를 컨테이너의 디렉토리와 연결하지는 못한다.하지만 개발을 하다 보면, 호스트 머신의 변경 사항이 곧바로 애플리케이션에 반영돼야 하는 경우가 있다. 이런 문제를 해결하기 위해 Docker는 Bind Mount라는 기능을 제공한다. Bind Mount는 호스트 머신의 디렉터리를 컨테이너의 특정 경로에 직접 연결해 데이터를 공유하거나 관리할 수 있도록 하는 기능으로, ..
[Docker] docker run, docker start 시 Attached mode, Detached mode 설정하기
·
Docker
Attached mode와 Detached modeDocker를 사용할 때, 컨테이너를 실행하기 위한 명령어인 docker run과 docker start 시 Attached mode와 Detached mode의 차이를 아는 것이 중요하다.docker run 시의 기본 옵션은 Attached mode로 이는 컨테이너의 표준 입력과 출력 그리고 오류 스트림을 터미널에 연결해 실시간으로 확인할 수 있도록 하는 모드이다. 다음은 우리가 docker run을 통해 애플리케이션을 실행했을 때의 화면이다. 이 화면에서 볼 수 있듯이, Attached Mode는 기본적으로 콘솔에서 로그를 확인할 수 있도록 한다.  하지만, 만약 우리가 docker start를 통해 컨테이너를 실행한다면, 이 컨테이너는 로그를 출력하..
[Docker] Dockerfile 사용해 스프링 애플리케이션 이미지 만들고 컨테이너 실행해보기
·
Docker
Dockerfile이란?Dockerfile은 Docker 이미지를 생성하기 위해 사용되는 스크립트 파일이다. 이 파일에는 이미지 생성 과정에서 수행될 명령어들이 순차적으로 작성되어 있으며, 이를 사용해 Docker 이미지를 빌드할 수 있다.  그러면 지금부터 스프링 애플리케이션을 위한 간단한 Dockerfile을 만들어보자. 코드는 다음 위치에 있다.* 이것은 예제를 위한 Dockerfile이고, 프로덕션을 위한 Dockefile은 더욱 복잡하게 만들어집니다. Code: https://github.com/seyoungcho2/DockerExample/tree/feature/1.simplespringdocker GitHub - seyoungcho2/DockerExample: Docker 연습을 위한 저장소..
Docker의 이미지와 컨테이너의 차이 알아보기
·
Docker
Docker 이미지와 컨테이너Docker의 이미지와 컨테이너는 Docker를 구성하는 핵심 요소로, 컨테이너 기반의 애플리케이션 개발 및 배포에 있어 매우 중요한 역할을 한다. 이 두 요소를 이해하면 Docker의 작동 원리와 장점을 명확히 파악할 수 있다. 이미지(Image)Docker 이미지는 컨테이너 실행을 위한 설정을 모아 놓은 읽기 전용 템플릿이다. 이미지에는 애플리케이션을 실행하는 데 필요한 모든 요소들이 포함되어 있다. 예를 들어 코드, 런타임, 라이브러리, 환경 변수 등이 포함되어 있다.  이미지의 주요 특징1. 불변성: 이미지는 읽기 전용으로 설계되어 있어 실행 중 변경되지 않아 환경을 표준화하는 데 유용합니다.2. 레이어 구조: 이미지는 여러 레이어(layer)로 구성되며, 변경 사항은..