도커 CLI는 "대상(이미지, 컨테이너 등) + 행위(run, rm 등)"의 직관적인 구조를 가집니다.
백문이 불여일타! Nginx 웹서버를 도커로 띄워서 브라우저에 접속하는 전체 생애주기(Lifecycle)를 실습해봅시다. 로컬 컴퓨터에 Nginx를 복잡하게 직접 설치하지 않아도, 단 한 줄의 명령어면 강력한 웹서버 구동이 완료됩니다.
| 핵심 명령어 | 동작 개념 | 주요 옵션 |
|---|---|---|
| run | 이미지가 없으면 다운로드(Pull)하고, 컨테이너를 생성(Create)한 뒤 즉시 실행(Start)합니다. 가장 많이 쓰이는 마법의 명령어입니다. | -d (백그라운드 실행)-p (포트 매핑) |
| ps | 현재 실행 중인 컨테이너들의 목록과 상태(UP), 포트 정보 등을 확인합니다. 리눅스의 프로세스 확인 명령어(ps)와 동일한 역할을 합니다. | -a (중지된 컨테이너까지 모두 표시) |
| exec | 현재 돌고 있는 컨테이너 내부에 침투(?)하여 추가적인 명령을 내립니다. 보통 쉘(bash/sh)을 띄워서 내부를 디버깅할 때 사용합니다. | -it (터미널 입출력을 연결하여 쉘을 사용할 수 있게 해줌) |
| stop / rm | 실행 중인 프로세스를 안전하게 종료(stop)시키고, 중지된 컨테이너의 실체를 디스크에서 삭제(rm)합니다. | -f (강제로 바로 삭제) |
컨테이너는 자신만의 독립적인 격리된 네트워크 공간을 가집니다. 따라서 컨테이너 내부에 80포트로 Nginx가 띄워졌다고 해서 내 컴퓨터의 브라우저로 바로 접속할 수는 없습니다. 반드시 -p 8080:80 처럼 내 컴퓨터의 특정 포트(8080)로 들어오는 통신을 컨테이너 내부의 포트(80)로 "연결(Mapping)"해 주어야 외부에서 접근이 가능합니다.