42. Create and Manage Containers
개요
Docker 컨테이너는 데몬, 설정 파일, 로그, 데이터베이스를 포함한 전체 애플리케이션 스택을 이식 가능한 단위로 캡슐화하여 애플리케이션 배포를 혁신합니다. 이를 통해 마이그레이션이나 스케일링 시 시스템 디렉토리 전체에 분산된 구성요소 관리 복잡성을 제거합니다.
Docker 명령어 핵심
전체 명령어 목록: docker --help
| 명령어 | 설명 |
|---|---|
run | 이미지에서 새 컨테이너 생성 및 실행 |
exec | 실행 중인 컨테이너에서 명령어 실행 |
ps | 활성 컨테이너 목록 |
build | Dockerfile에서 이미지 빌드 |
pull | 레지스트리에서 이미지 다운로드 |
images | 사용 가능한 이미지 표시 |
search | Docker Hub에서 이미지 검색 |
사용자가 Docker 그룹에 속하지 않으면
sudo로 명령어를 실행하거나, 그룹에 추가하여 비밀번호 없이 접근하세요.이미지 작업
이미지 검색:
docker search nginx
특정 버전(태그) 다운로드:
docker pull nginx:1.22.1
사용하지 않는 이미지 제거:
docker rmi imagename:tag
모든 이미지 목록:
docker images
컨테이너 실행
docker run으로 컨테이너를 실행합니다. 주요 플래그:
| 플래그 | 설명 |
|---|---|
--detach | 백그라운드에서 실행 |
--publish 8080:80 | 호스트 포트 8080 → 컨테이너 포트 80 매핑 |
--name | 컨 테이너에 이름 지정 |
--restart always | 자동 재시작 정책 적용 |
실행 중인 컨테이너 확인:
docker ps # 활성 컨테이너만
docker ps --all # 중지된 컨테이너 포함
컨테이너 관리
docker start containerid # 중지된 컨테이너 시작
docker stop containername # 실행 중인 컨테이너 중지
docker rm containername # 컨테이너 제거
docker run은 새 컨테이너를 생성하고, docker start는 기존 컨테이너를 재시작합니다.커스텀 이미지 빌드
베이스 이미지와 커스텀 명령어로 Dockerfile 생성:
FROM nginx
COPY index.html /usr/share/nginx/html/index.html
주요 Dockerfile 명령어:
RUN: 명령어 실행CMD: 기본 시작 명령어ENTRYPOINT: 필수 초기화 명령어
이미지 빌드:
docker build --tag username/imagename:version .
배포 테스트
netcat 등의 도구로 포트 접근성을 확인하여 컨테이너화된 애플리케이션이 게시된 포트에서 요청에 올바르게 응답하는지 확인합니다.