[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)로 구성되며, 변경 사항은..
Docker란 무엇이고 왜 사용할까? Docker와 가상 머신의 차이점 완벽 정리
·
Docker
Docker란 무엇인가?Docker는 컨테이너 기술로, 컨테이너를 생성하고 관리하기 위한 도구이다.컨테이너에는 코드 패키지와 해당 코드를 실행하는 데 필요한 의존성과 도구가 포함되어 있으며, 이를 표준화된 소프트웨어 유닛이라 부른다. 컨테이너를 사용하면 애플리케이션과 그 환경을 하나의 독립된 단위로 실행할 수 있어 개발, 테스트, 배포가 간소화된다. 예를 들어 스프링 애플리케이션 실행하기 위해서는 JDK와 jar 파일이 필요하다. 이때, Docker를 사용하면 애플리케이션이 실행되는 환경을 컨테이너 이미지로 패키징할 수 있다. 이를 통해 동일한 환경에서 애플리케이션이 실행되므로 로컬 개발 환경과 운영 환경 간의 불일치를 최소화할 수 있다.예를 들어 특정 jar을 실행하기 위해 JDK17 버전 이상이 ..