본문 바로가기
개발 지식/Docker

02. [실습] 가상화 기술

by gamdong2 2024. 12. 22.

📖 학습 목표

  • 실습 목표
  • 컨테이너 실행

1. 실습 목표

  • Nginx 웹 서버 컨테이너 실행 -> Nginx 웹 서버가 제공하는 웹 페이지 접속
    • 웹 서버: 웹 브라우저에서 웹 페이지를 제공해주는 서버
    • 웹 브라우저 주소창에 웹 페이지 주소를 입력(웹 브라우저를 통해 웹 서버로 요청을 보냄) -> 웹 페이지를 파일로 응답 -> 웹 페이지 파일이 사용자의 웹 브라우저 화면에 표시됨 -> 사용자가 웹 서비스를 사용할 수 있게 됨

  • 웹 서버에 접속하려면 웹 브라우저 주소창에 localhost 입력 

 

2. 컨테이너 실행

1) 터미널 명령어

  • docker version: Client, Server의 버전 및 상태 확인
    • Client/Server의 각 버전 확인
    • Host OS 에서 도커가 실행 중 X 일때; 버전 확인 불가

  • docker info: 플러그인, 시스템 상태 정보 확인 
    • Client 응답: 버전/설치된 플러그인 버전 확인 
    • Server 응답: 실행중인 컨테이너 개수/이미지 개수/사용중인 플러그인/도커가 실행되는 시스템의 OS 타입 확인 

  • docker --help: 명령어 메뉴얼 확인
    • docker (Management Command "대분류") Command "소분류
    • ex: docker (container) run

  • docker container --help: container 뒤에 나올 명령어 확인

  • docker container run --help: docker container run 뒤에 나올 명령어 확인
    • container 를 실행할 때 사용할 수 있는 다양한 옵션 확인

 

2) 컨테이너 실행 및 삭제

① 컨테이너 실행

  • 터미널 명령어: docker run (실행 옵션) 이미지
    • 실행 옵션: 컨테이너 이름 지정/컨테이너 접속시 사용할 포트 지정 
docker run -p 80:80 --name hellonginx nginx
# docker run    Docker 컨테이너를 생성하고 실행
# -p 80:80    컨테이너의 포트(뒤 80번 포트)를 호스트 머신(앞 80번 포트)에 매핑
# --name hellonginx    컨테이너 이름 지정
# nginx    Docker 이미지 이름(nginx 이미지를 기반으로 컨테이너를 생성하고 실행)

 

② 크롬 시크릿 창 오픈 -> 주소창에 localhost 입력

 

③ 다시 터미널 확인

  • Nginx 접속 로그가 남음
    • Nginx: 지속적으로 실행되는 s/w. 한 번 실행 시 터미널을 점유하여 종료 전까지 지속적으로 로그를 출력 (포그라운드 실행이 디폴트)
    • 아래 명령어로 실행 시 백그라운드로 Nginx 컨테이너를 실행 (데몬 모드)
docker run -d -p 80:80 --name hellonginx nginx

 

④ Nginx 가 점유한 터미널을 빠져나옴: ctrl c (사용자 쉘로 복귀)

⑤ 컨테이너 삭제

  • 터미널 명령어: docker rm 컨테이너명/ID
docker rm hellonginx

 

3) 요약

  • 사용자: Docker CLI에 명령어 입력 (docker run nginx)
  • Docker CLI: 사용자 명령을 컨테이너 실행 API 양식에 맞추어 변환 -> Docker Daemon에 API 요청
  • Docker Daemon: 요청을 분석하여 Kernel(컨테이너 런타임)을 통해 컨테이너 생성
  • localhost 접속: 컨테이너에서 실행중인 Nginx Process에서 요청을 전달 받아 웹 페이지를 제공 
    • 컨테이너 생성 후 프로세스 실행: Memory/CPU/Disk/Network 가 완전히 격리된 공간에서 프로세스가 실행됨

 

 

 

 

 

Ref: 개발자를 위한 쉬운 도커 (데브위키 저)

'개발 지식 > Docker' 카테고리의 다른 글

04. [실습] 컨테이너 실행  (0) 2024.12.26
00. 환경 준비  (0) 2024.12.19
01. 가상화 기술  (0) 2024.12.17