Aller au contenu principal

42. Create and Manage Containers


개요

Docker 컨테이너는 데몬, 설정 파일, 로그, 데이터베이스를 포함한 전체 애플리케이션 스택을 이식 가능한 단위로 캡슐화하여 애플리케이션 배포를 혁신합니다. 이를 통해 마이그레이션이나 스케일링 시 시스템 디렉토리 전체에 분산된 구성요소 관리 복잡성을 제거합니다.

Docker 명령어 핵심

전체 명령어 목록: docker --help

명령어설명
run이미지에서 새 컨테이너 생성 및 실행
exec실행 중인 컨테이너에서 명령어 실행
ps활성 컨테이너 목록
buildDockerfile에서 이미지 빌드
pull레지스트리에서 이미지 다운로드
images사용 가능한 이미지 표시
searchDocker 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 등의 도구로 포트 접근성을 확인하여 컨테이너화된 애플리케이션이 게시된 포트에서 요청에 올바르게 응답하는지 확인합니다.