티스토리 뷰

300x250

Docker 설치부터 기본 명령어, 사용 예시까지 | 초보자 입문 가이드

지난 글에서 Docker가 무엇인지, 왜 컨테이너가 중요한지부터 정리했다면 이번에는 한 단계 더 나아가 실제로 어떻게 설치하고, 어떤 명령어를 쓰고, 어떤 식으로 활용하는지를 알아볼 차례입니다.

처음 Docker를 배우면 보통 이런 순서에서 막히기 쉽습니다.

  • Docker는 어떻게 설치하지?
  • 설치 후 뭘 먼저 확인해야 하지?
  • docker run, docker ps, docker images는 각각 무슨 역할이지?
  • 이미지는 만들고 컨테이너는 어떻게 실행하지?
  • 실제로는 어떤 식으로 써먹는 거지?

그래서 이번 글은 개념 설명만 하는 글이 아니라, 초보자가 바로 따라가며 흐름을 잡을 수 있는 입문형 실습 글로 구성해보겠습니다.

먼저 핵심부터
Docker를 처음 배울 때는 설치 → 실행 확인 → 이미지 이해 → 컨테이너 실행 → 자주 쓰는 명령어 순서로 익히는 것이 가장 쉽습니다.
이미지는 실행 준비가 된 묶음이고, 컨테이너는 그것을 실제로 실행한 상태입니다.
처음부터 복잡한 명령어를 많이 외우기보다, 흐름 중심으로 익히는 것이 더 중요합니다.

이번 글에서는 Docker 설치 방법, 설치 후 확인 포인트, 꼭 알아야 할 기본 명령어, 그리고 간단한 사용 예시까지 한 번에 정리해보겠습니다.

728x90
Docker는 어떻게 설치할까?
운영체제마다 설치 방식은 조금 다르지만 흐름은 비슷합니다.

초보자 기준으로는 보통 Docker Desktop을 설치하는 방식이 가장 쉽습니다. Windows와 macOS에서는 Docker Desktop을 많이 사용하고, Linux에서는 패키지 매니저 기반 설치를 많이 사용합니다.

운영체제 기본 설치 방향
Windows Docker Desktop 설치 후 WSL2 환경과 함께 사용
macOS Docker Desktop 설치 후 앱 실행
Linux 패키지 매니저 기반으로 Docker Engine 설치

초보자라면 공식 사이트에서 설치 파일을 받아 진행하는 방식이 가장 무난합니다.

  • Docker 공식 사이트 접속
  • 운영체제에 맞는 버전 다운로드
  • 설치 진행
  • Docker Desktop 실행
  • 백그라운드에서 Docker 엔진이 정상 동작하는지 확인

설치 자체보다 더 중요한 것은 설치 후 정상 동작을 확인하는 것입니다.

설치 후 가장 먼저 확인할 것
버전 확인과 테스트 컨테이너 실행이 기본입니다.

설치가 끝났다면 터미널에서 아래 명령어로 먼저 상태를 확인합니다.

docker --version

이 명령은 Docker CLI가 정상 설치되었는지 확인하는 가장 간단한 방법입니다.

그다음에는 Docker 엔진이 실제로 동작하는지 확인하기 위해 테스트 이미지를 실행해보면 좋습니다.

docker run hello-world

이 명령어는 Docker Hub에서 hello-world 이미지를 가져오고, 아주 간단한 테스트 컨테이너를 실행합니다.

정상이라면 대략 이런 흐름이 나옵니다.

  • 로컬에 이미지가 없으면 먼저 pull
  • 이미지 다운로드 완료
  • 컨테이너 실행
  • Hello from Docker! 메시지 출력

이 단계까지 되면 설치 + 엔진 실행 + 이미지 다운로드 + 컨테이너 실행 흐름이 정상적으로 연결된 것입니다.

꼭 봐야 할 포인트
Docker를 처음 설치한 뒤에는 단순 버전 확인에서 끝내지 말고, hello-world 실행까지 해보는 것이 가장 확실한 점검 방법입니다.
초보자가 꼭 알아야 할 기본 명령어
명령어를 외우기보다 어떤 역할인지 먼저 이해하는 것이 중요합니다.

Docker를 처음 배울 때는 명령어가 많아 보여서 부담스럽지만, 초반에는 몇 개만 제대로 익혀도 충분합니다.

명령어 역할
docker --version Docker 버전 확인
docker run 이미지명 이미지를 기반으로 컨테이너 실행
docker ps 현재 실행 중인 컨테이너 목록 확인
docker ps -a 종료된 것까지 포함한 전체 컨테이너 확인
docker images 로컬에 저장된 이미지 목록 확인
docker stop 컨테이너명 실행 중인 컨테이너 중지
docker rm 컨테이너명 중지된 컨테이너 삭제
docker rmi 이미지명 이미지 삭제
docker logs 컨테이너명 컨테이너 로그 확인

초보자 입장에서는 특히 아래 4개를 먼저 익히면 좋습니다.

  • docker run
  • docker ps
  • docker images
  • docker logs

이 네 개만 알아도 “무엇을 실행했고, 지금 뭐가 떠 있고, 어떤 이미지가 있고, 왜 안 되는지”를 기본적으로 따라갈 수 있습니다.

가장 많이 쓰는 명령어를 예시로 보면
짧은 실습 예시가 흐름 이해에 도움이 됩니다.

1) 테스트 컨테이너 실행

docker run hello-world

가장 기본적인 실행 예시입니다. Docker가 이미지 pull과 컨테이너 실행을 제대로 하는지 확인할 수 있습니다.

2) Nginx 컨테이너 실행

docker run -d -p 8080:80 --name my-nginx nginx

이 명령은 자주 예시로 쓰입니다.

  • -d: 백그라운드 실행
  • -p 8080:80: 내 PC의 8080 포트를 컨테이너의 80 포트와 연결
  • --name my-nginx: 컨테이너 이름 지정
  • nginx: 사용할 이미지 이름

이후 브라우저에서 http://localhost:8080으로 접속하면 Nginx 기본 화면을 볼 수 있습니다.

3) 실행 중인 컨테이너 확인

docker ps

방금 실행한 my-nginx가 살아 있는지 확인할 수 있습니다.

4) 로그 확인

docker logs my-nginx

문제가 생겼을 때 가장 먼저 확인하는 기본 명령어 중 하나입니다.

5) 컨테이너 중지 및 삭제

docker stop my-nginx
docker rm my-nginx

컨테이너를 사용한 뒤 정리할 때 쓰는 기본 흐름입니다.

한 번에 흐름으로 보면
설치 → 버전 확인 → hello-world 실행 → Nginx 컨테이너 실행 → docker ps로 상태 확인 → docker logs 확인 → 중지 및 삭제
이미지 pull, 실행, 삭제는 어떻게 연결될까?
명령어를 따로 외우지 말고 관계로 이해하면 쉽습니다.

Docker의 기본 흐름은 생각보다 단순합니다.

  1. 이미지가 필요하다.
  2. 이미지가 없으면 pull 한다.
  3. 그 이미지를 기반으로 컨테이너를 실행한다.
  4. 실행된 컨테이너를 보고, 로그를 확인하고, 필요하면 중지한다.
  5. 더 이상 필요 없으면 컨테이너와 이미지를 정리한다.

예를 들어 docker run nginx를 입력하면 내부적으로는 로컬에 이미지가 있는지 먼저 확인합니다. 없으면 가져오고, 있으면 바로 컨테이너를 실행합니다.

즉 초보자는 명령어를 별개로 보지 말고, 이미지 → 컨테이너 → 상태 확인 → 정리 흐름으로 이해하면 훨씬 쉽습니다.

초보자가 꼭 봐야 할 사용 예시
단순 명령어보다, 어디에 쓰는지 알아야 기억에 남습니다.

사용 예시 1) 웹 서버를 빠르게 띄워보기

개발이나 테스트 중 임시 웹 서버가 필요할 때 Nginx 이미지를 실행해 바로 확인할 수 있습니다.

docker run -d -p 8080:80 --name web-test nginx

이런 식으로 간단한 웹 서버를 금방 띄울 수 있다는 점이 Docker의 장점입니다.

사용 예시 2) DB 테스트 환경 만들기

MySQL 같은 데이터베이스를 로컬에 직접 설치하지 않고 컨테이너로 실행해서 테스트할 수 있습니다.

docker run -d \
  --name my-mysql \
  -e MYSQL_ROOT_PASSWORD=1234 \
  -p 3306:3306 \
  mysql:8

이렇게 하면 특정 버전 DB를 빠르게 실험할 수 있습니다. 다만 실제 데이터 보존까지 필요하다면 볼륨 설정도 함께 알아두는 것이 좋습니다.

사용 예시 3) 개발 환경 맞추기

팀원마다 환경이 다를 때 “Node 18 버전으로 맞추자”, “MySQL 8로 테스트하자” 같은 상황에서 Docker 이미지를 쓰면 환경 차이를 줄이기 좋습니다.

즉 Docker는 단순한 학습용 도구가 아니라, 개발 환경 통일과 테스트 재현성 확보에 특히 강합니다.

초보자가 자주 하는 실수
여기서 막히는 경우가 정말 많습니다.
  1. 이미지와 컨테이너를 같은 것으로 생각한다.
    이미지는 실행 준비물이고, 컨테이너는 실행 결과물입니다.
  2. 컨테이너가 종료됐는데 이미지가 사라진 줄 안다.
    컨테이너가 멈춰도 이미지는 남아 있을 수 있습니다.
  3. 포트 매핑 개념 없이 접속이 안 된다고 생각한다.
    컨테이너 내부 포트와 외부 접근 포트를 연결해야 브라우저나 앱에서 접근 가능합니다.
  4. 로그를 안 보고 바로 다시 실행만 반복한다.
    문제 원인을 보려면 docker logs를 먼저 보는 습관이 중요합니다.
꼭 봐야 할 체크리스트
  • Docker Desktop 또는 Docker Engine이 실제로 실행 중인가?
  • docker --version으로 설치 확인을 했는가?
  • docker run hello-world로 테스트했는가?
  • 포트 매핑과 컨테이너 이름을 이해하고 있는가?
  • 문제가 생기면 docker logs를 먼저 확인했는가?
조금 더 깊게 보면, 중요한 것은 명령어 암기가 아니라 실행 흐름 이해다
초보자일수록 명령어 개수보다 연결 구조를 잡는 것이 먼저입니다.

Docker를 처음 배울 때 가장 흔한 실수가 명령어를 한꺼번에 외우려는 것입니다. 하지만 실제로는 명령어보다 실행 흐름을 이해하는 것이 훨씬 중요합니다.

예를 들어,

  • 이미지를 준비하고
  • 컨테이너를 실행하고
  • 실행 상태를 확인하고
  • 로그를 보고
  • 필요하면 중지하고 삭제하는 흐름

이 구조만 이해해도 새로운 명령어를 만났을 때 훨씬 빠르게 적응할 수 있습니다.

즉 Docker 입문 단계에서는 “명령어 100개”보다 핵심 명령어 10개와 그 관계를 이해하는 것이 더 좋은 학습 방식입니다.

현실적으로는 어떻게 시작하면 좋을까?
무리하게 깊게 들어가기보다 작은 성공 경험부터 만드는 편이 좋습니다.

실무 이야기를 과하지 않게 정리하면, Docker는 처음부터 복잡한 Docker Compose, 레지스트리 운영, Kubernetes 연계까지 한 번에 들어가기보다 아래 순서로 익히는 편이 좋습니다.

  • 설치하고 정상 동작 확인하기
  • hello-world 실행해보기
  • Nginx 같은 간단한 컨테이너 띄워보기
  • docker ps, docker logs, docker stop 같은 기본 명령 익히기
  • MySQL 같은 서비스 이미지를 실행해보며 실습 범위 넓히기

이 정도만 해도 Docker의 기본 감각은 꽤 잘 잡힙니다.

자주 나오는 질문
  • Q. Docker 설치만 하면 바로 다 쓸 수 있나요?
    → 기본 실행은 가능하지만, 실제로는 이미지·컨테이너·포트·로그 개념을 같이 익혀야 더 잘 활용할 수 있습니다.
  • Q. 명령어를 다 외워야 하나요?
    → 아닙니다. 자주 쓰는 기본 명령어 몇 개와 흐름을 이해하는 것이 더 중요합니다.
  • Q. Docker는 꼭 백엔드나 인프라 쪽만 쓰나요?
    → 아니요. 웹 개발, 테스트 환경, 데이터베이스 실습 등 다양한 상황에서 활용됩니다.
결론 | Docker 입문은 설치보다 흐름 이해가 더 중요하다
초보자는 명령어 암기보다 직접 실행 흐름을 따라가보는 것이 훨씬 효과적입니다.

Docker를 처음 배울 때는 설치 자체보다, 설치 후 어떤 흐름으로 사용하는지를 잡는 것이 더 중요합니다.

  • Docker를 설치하고
  • 정상 동작을 확인하고
  • 이미지를 실행하고
  • 컨테이너 상태와 로그를 보고
  • 필요하면 중지하고 삭제하는 흐름

이 기본 구조를 이해하면 이후 Dockerfile, Docker Compose, CI/CD, Kubernetes 같은 다음 단계도 훨씬 수월하게 연결됩니다.

마지막으로 한 줄로 정리하면 이렇습니다.

Docker 입문은 명령어를 많이 외우는 것보다, 설치 후 이미지와 컨테이너가 어떻게 실행되고 관리되는지 흐름을 이해하는 것이 핵심입니다.
728x90
댓글
반응형
최근에 올라온 글
글 보관함
«   2026/04   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30