개발 기본

도커(Docker)

도커(Docker)는 앱과 실행 환경을 컨테이너로 묶어 어디서든 비슷하게 실행되도록 돕는 도구입니다.

쉬운 설명

앱 실행 환경을 컨테이너로 묶어 어디서든 비슷하게 실행하게 해주는 도구.

배경과 쓰임까지 이해하기

조금 더 자세히

도커(Docker)는 프로그램 실행에 필요한 환경을 컨테이너로 묶어 어디서든 비슷하게 실행되도록 돕는 도구입니다. 보통 내 컴퓨터에서는 잘 되는데 다른 서버에서는 안 되는 문제가 Node 버전, 패키지, OS 설정, 실행 명령 차이 때문에 생깁니다. Docker를 쓰면 앱과 실행 환경을 정해진 방식으로 묶어 이런 차이를 줄일 수 있습니다.

예를 들어 백엔드 서버 실행, 데이터베이스 띄우기, 개발 환경 통일, VPS 배포, CI 테스트, 여러 서비스를 `docker compose`로 함께 실행하기 등에 사용됩니다. 설정을 잘못하면 컨테이너 안과 밖의 파일, 포트, 환경변수를 헷갈릴 수 있습니다. 한마디로, 도커(Docker)는 앱 실행 환경을 포장해서 어디서든 비슷하게 돌리게 해주는 도구입니다.

실제로는 이렇게 만나요

Node 버전, 패키지, 서버 실행 명령을 Dockerfile에 적어두면 컨테이너 안에서 같은 방식으로 앱을 실행할 수 있습니다.

  • 이런 거 할 때 나와요 내 컴퓨터에서는 되는데 배포나 팀원 환경에서는 안 되는 문제를 줄이는 데 도움이 됩니다.
  • 이렇게 생겼어요 도커(Docker)은(는) Build, Deploy, Environment Variable 같은 주변 개념과 함께 문서, 설정 화면, 오류 메시지에서 자주 보입니다.
  • 나오는 화면 예시 개발 기본 작업을 하다가 Build, Deploy, Environment Variable를 확인하는 화면

헷갈리기 쉬운 점

컨테이너가 만능은 아닙니다. 환경변수(Environment Variable), 볼륨, 네트워크 설정을 잘못 잡으면 오히려 디버깅이 어려워집니다.

왜 알아두면 좋을까요?

내 컴퓨터에서는 되는데 배포나 팀원 환경에서는 안 되는 문제를 줄이는 데 도움이 됩니다.

Checklist

실제로 볼 때 확인할 것

  1. 01

    Dockerfile의 기준 이미지를 확인한다

  2. 02

    비밀값을 이미지에 넣지 않는다

  3. 03

    로컬과 배포의 포트 설정을 맞춘다

관계 지도

도커(Docker) 중심으로 관련 개념의 정의와 관계를 한눈에 정리했습니다.
도커(Docker)의 정의와 관련 개념 간 관계를 설명한 계층형 그래프