DockerDocker 기초강의 6개 중 1번째난이도 기초

Docker란? — 컨테이너와 가상화의 차이

발행 읽는 시간 약 1 분

  • Docker
  • 컨테이너
  • 가상화
  • 개발환경

강의 소개

Docker가 무엇이고 왜 필요한지, VM과 컨테이너의 차이를 이해합니다. Docker 설치부터 첫 컨테이너 실행까지 단계별로 배웁니다.

"내 컴퓨터에서는 됩니다"#

팀에서 가장 흔한 문제:

Text
개발자 A: "제 Mac에서는 잘 돼요"
개발자 B: "제 Windows에서는 에러 나요"
서버: "배포하니까 또 다른 에러..."

Docker는 이 문제를 해결합니다. 어디서든 동일한 환경을 제공합니다.


가상머신 vs 컨테이너#

Diagram · Mermaid
VM컨테이너
크기GB 단위MB 단위
시작 시간분초
OS게스트 OS 포함호스트 OS 공유
격리강함프로세스 수준

Docker 설치#

Bash
# Mac: Docker Desktop 설치
# https://docs.docker.com/desktop/install/mac-install/

# 설치 확인
docker --version
# Docker version 26.0.0

docker info

첫 컨테이너 실행#

Bash
# Hello World
docker run hello-world

# Ubuntu 컨테이너 실행
docker run -it ubuntu bash
# -i: 인터랙티브
# -t: 터미널 연결
# 컨테이너 안의 bash 실행됨

# 컨테이너 안에서
uname -a  # Linux ...
exit      # 컨테이너 종료

핵심 개념#

Diagram · Mermaid
  • 이미지 (Image): 컨테이너의 설계도. 읽기 전용.
  • 컨테이너 (Container): 이미지를 실행한 인스턴스. 추가 레이어 생성.
  • Dockerfile: 이미지를 만드는 스크립트.

기본 명령어#

Bash
# 이미지 다운로드
docker pull nginx:latest
docker pull python:3.12-slim

# 이미지 목록
docker images

# 컨테이너 실행
docker run nginx                         # 포그라운드
docker run -d nginx                      # 백그라운드 (-d: detach)
docker run -d -p 8080:80 nginx          # 포트 연결
docker run -d --name my-nginx nginx      # 이름 지정

# 실행 중인 컨테이너
docker ps
# 모든 컨테이너 (종료된 것 포함)
docker ps -a

# 컨테이너 중지/시작/삭제
docker stop my-nginx
docker start my-nginx
docker rm my-nginx
docker rm -f my-nginx   # 실행 중이어도 강제 삭제

# 컨테이너 안에서 명령 실행
docker exec -it my-nginx bash

# 로그 확인
docker logs my-nginx
docker logs -f my-nginx   # 실시간 스트림

정리#

개념설명
이미지컨테이너 실행을 위한 읽기 전용 패키지
컨테이너이미지의 실행 인스턴스
Dockerfile이미지 빌드 스크립트
Docker Hub공개 이미지 저장소

다음 편에서는 Dockerfile 작성 — 내 앱을 이미지로 만드는 방법을 배웁니다.

Follow · Ask · Work

이 글이 도움이 됐다면

짧은 작업 기록과 데모는 인스타그램에 올립니다. 만들고 싶은 것이 있다면 프로젝트 의뢰나 협업 제안도 편하게 보내 주세요.

글쓴이

파란여우

직접 만든 AI 앱·제품의 개발·배포를 공개하는 실전형 테크 크리에이터

파란여우 소개 Instagram @bluefox._.hi

이어서 보기

만들고 싶은 것이 있다면 프로젝트 의뢰로 알려 주세요.