9강예상 3분입문
[요약] Part 2. 컨테이너를 내 마음대로 다루기
Part 2. 컨테이너를 내 마음대로 다루기의 핵심 내용을 정리하고 복습하는 요약 회차입니다.
- 학습 목표: 컨테이너를 제어하는 핵심 명령어와 필수 옵션 마스터
- 주요 내용: `Dockerfile` 작성법, 포트 매핑, 볼륨(데이터 보존), 환경 변수 주입
- 요약 포인트: 내 코드를 이미지로 빌드하고 원하는 설정으로 안전하게 실행하는 실무 테크닉 암기
Dockerfile 작성 예시
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
CMD ["npm", "start"]1. 이미지 빌드와 실행 제어
- `Dockerfile` 핵심 명령어:
- `FROM`: 베이스 이미지 지정 (시작점)
- `WORKDIR`: 작업 디렉토리 설정
- `COPY`: 파일 복사
- `RUN`: 빌드 중 명령어 실행 (의존성 설치 등)
- `CMD`: 컨테이너 실행 시 기본 명령어
- 빌드 및 실행:
- `docker build`: 나만의 이미지 생성
- `docker run`: 컨테이너 실행 (`-d` 백그라운드, `--restart always` 자동 재시작)
2. 외부 소통 및 데이터 관리
포트 매핑 (Port Mapping)
- 목적: 격리된 컨테이너에 외부에서 접속할 수 있도록 문을 열어줌
- 사용법: `-p 호스트_포트:컨테이너_포트` (내 컴퓨터 트래픽 -> 컨테이너 전달)
데이터 영구 보존 (Volume & Mount)
- 목적: 컨테이너 삭제 시 데이터가 날아가는 휘발성 극복
- 사용법: `-v 호스트_경로:컨테이너_경로` (DB 데이터 보존, 소스 코드 실시간 반영)
환경 변수 주입 (Environment Variables)
- 목적: 비밀번호, API 키 등 민감한 설정값 하드코딩 방지 및 이미지 재사용성 확보
- 사용법: `-e 키=값` 또는 `--env-file` 옵션으로 실행 시점에 설정값 주입
컨테이너 실행 핵심 옵션 복습
- -d : 터미널을 닫아도 서버가 계속 돌아가도록 백그라운드에서 실행
- -p 8080:80 : 내 컴퓨터의 8080 포트를 컨테이너 안의 80 포트와 연결
- -v my-vol:/data : 데이터를 영구적으로 보존하기 위해 폴더를 마운트
- -e API_KEY=secret : 컨테이너 내부에 필요한 비밀 설정값을 주입
개념 퀴즈
퀴즈 답을 맞춰야 학습 완료가 됩니다.다음 중 컨테이너를 삭제하더라도 데이터베이스에 쌓인 데이터가 날아가지 않도록, 안전하게 내 컴퓨터와 연결해주는 옵션은 무엇인가요?
3줄 요약
- 1Dockerfile은 FROM, COPY, RUN 등의 명령어로 내 프로그램을 컨테이너화하기 위한 레시피 문서입니다.
- 2도커 컨테이너는 격리된 환경이므로 -p 옵션으로 포트를 매핑하고, -v 옵션으로 볼륨을 연결해야 실무에 활용 가능합니다.
- 3보안상 중요한 값들은 소스 코드에 하드코딩하지 않고, -e 옵션이나 .env 파일을 이용해 환경 변수로 안전하게 주입합니다.