Docker & Podman 실습
Docker & Podman Lab
시뮬레이션 docker/podman CLI, Dockerfile 레이어 시각화, 컨테이너 생명주기 상태 머신, Docker vs Podman 비교로 컨테이너를 브라우저에서 직접 익혀보세요. 서버 없이 동작합니다.
컨테이너를 브라우저에서 직접 손으로 배우는 도구입니다. 서버 없이 동작하며, CLI 시뮬레이터는 실제 컨테이너 런타임을 실행하지 않고 가상 상태로 동작을 흉내 냅니다.
컨테이너 CLI 시뮬레이터입니다. `docker help` 또는 `podman help` 를 입력해 시작하세요. (실제 런타임이 아니라 학습용 시뮬레이션입니다.)
컨테이너 CLI 시뮬레이터입니다. `docker help` 또는 `podman help` 를 입력해 시작하세요. (실제 런타임이 아니라 학습용 시뮬레이션입니다.)
🎯 미션
- 1.
이미지 목록 확인
로컬에 있는 이미지를 나열해 보세요.
힌트: docker images
- 2.
이미지 받기
redis 이미지를 받아 오세요(pull).
힌트: docker pull redis
- 3.
컨테이너 실행 + 포트 공개
nginx를 백그라운드로 실행하고 호스트 8080 → 컨테이너 80 포트를 공개하세요.
힌트: docker run -d -p 8080:80 --name web nginx
- 4.
실행 중 컨테이너 보기
지금 실행 중인 컨테이너를 확인하세요.
힌트: docker ps
- 5.
컨테이너 중지
방금 만든 web 컨테이너를 멈추세요.
힌트: docker stop web
🧪 실습 시나리오
컨테이너 한살이 (run → stop → rm)
목표: nginx 컨테이너를 실행하고 관찰한 뒤, 정지·삭제까지 생명주기 전체를 직접 밟아 봅니다.
- 1.
docker run -d --name app nginx백그라운드로 시작되고 컨테이너 ID(12자리 16진수)가 출력됩니다. - 2.
docker psapp 이 STATUS "Up …" 으로 목록에 나타납니다. - 3.
docker exec app whoami실행 중인 컨테이너 안에서 명령이 실행되어 root 가 출력됩니다. - 4.
docker logs appnginx 시작 로그(start worker processes 등)가 보입니다. - 5.
docker stop app이름(app)이 출력되고, docker ps -a 에서 Exited (0) 상태로 남습니다. - 6.
docker rm app정지된 컨테이너가 삭제됩니다. docker ps -a 로 사라진 것을 확인하세요.
이미지 정리 (rmi 충돌 해결)
목표: 컨테이너가 남아 있으면 이미지를 지울 수 없다는 것을 실패 → 해결 순서로 체험합니다.
- 1.
docker pull busyboxbusybox(4.3MB) 이미지를 받습니다. - 2.
docker run --name box busybox-d 없이 포그라운드 실행 → 곧바로 종료(Exited)되지만 컨테이너는 남습니다. - 3.
docker rmi busybox의도된 실패: box 컨테이너가 이미지를 참조 중이라 conflict 에러가 납니다. - 4.
docker rm box정지된 box 컨테이너를 먼저 삭제합니다. - 5.
docker rmi busybox이번엔 Untagged / Deleted 가 출력됩니다. docker images 로 확인하세요.
볼륨과 데이터 보존
목표: 명명된 볼륨을 만들어 postgres에 마운트하고, 컨테이너를 지워도 볼륨은 남는 것을 확인합니다.
- 1.
docker volume create pgdata볼륨 이름(pgdata)이 그대로 출력됩니다. - 2.
docker run -d --name db -v pgdata:/var/lib/postgresql/data -e POSTGRES_PASSWORD=secret postgres-v 볼륨:경로 로 마운트하고 -e 로 환경변수를 넣어 백그라운드로 실행합니다. - 3.
docker logs db"database system is ready to accept connections" 로그가 보입니다. - 4.
docker stop db컨테이너를 정지합니다(이름 db 가 출력됩니다). - 5.
docker rm db컨테이너를 삭제합니다. - 6.
docker volume lspgdata 가 여전히 목록에 있습니다 — 데이터는 컨테이너보다 오래 삽니다.
- •이미지(image)는 읽기 전용 템플릿, 컨테이너(container)는 그 이미지로 만든 실행 인스턴스입니다.
- •-d 는 백그라운드(detached), -p 호스트:컨테이너 는 포트 공개, --name 은 이름 지정입니다.
- •-e 는 환경변수, -v 는 볼륨/바인드 마운트로 데이터를 컨테이너 밖에 보존합니다.
- •stop 한 컨테이너는 사라지지 않습니다 — start 로 다시 켜거나 rm 으로 삭제합니다.
이어서 해볼 도구
같은 흐름으로 이어지는 도구를 골라 두었습니다.
- kubectl 명령어 찾기하고 싶은 일을 검색하면 정확한 kubectl 명령어를 찾아줍니다. 위험도 표시, 카테고리 필터, 치트시트 모드, 오늘의 kubectl 팁을 제공합니다.
- 쿠버네티스 네트워킹 & 서비스 메시 실습브라우저 시뮬레이션으로 배우는 쿠버네티스 네트워킹 — 평평한 파드 네트워크와 CNI, 서비스와 kube-proxy, 인그레스, Istio/Envoy 서비스 메시, 네트워크 정책까지. 서버 없이 클릭하며 익힙니다.
- 쿠버네티스 놀이터설치 없이 브라우저에서 도는 시뮬레이션 쿠버네티스 클러스터입니다. Pod 자동 복구, CrashLoop, 롤링 업데이트, NodePort, Readiness Probe, 마이크로서비스 체인까지 기본·응용·심화 15개 시나리오를 눈으로 관찰하세요.
- AWS Golden Jacket 퀴즈활성 AWS 자격증 경로를 기준으로 한 인증별 퀴즈, 플래시카드, hands-on 드릴 학습 도구입니다.