2. 도커, 컨테이너 살펴보기

몽자비루 ㅣ 2024. 4. 13. 23:55

  1. 컨테이너와 컨테이너 이미지의 차이
    1. 컨테이너 = 하나의 애플리케이션이다.
      • 하나의 컨테이너는 완전히 분리되어 각자 운영된다.
    2. docker host
      • docker daemon 이 동작되고 있는 리눅스 커널이 있는 시스템
        ※ docker deamon : 도커 프로세스가 실행되어 서버로부터 입력받을 준비가 된 상태
      • 도커가 컨테이너를 실행할 수 있는 플랫폼을 만들어놨음을 의미함.
      • 호스트 입장에서 컨테이너는 단순히 동작하는 프로세스 중 하나.
    3. 컨테이너 이미지
      • 컨테이너는 여러개의 레이어로 구성되어 있다.
      • 컨테이너 이미지는 여러개의 레이어로 구성되어, 하나의 애플리케이션이 잘 실행되도록 모아져있는 이미지의 이미지들의 조합.
      • 단순히 하드웨어에 저장되어있는 파일을 의미함. (read only)
      • 컨테이너 이미지를 docker host에서 실행했을 때, 프로세스화 된 것을 container 이라고 함.
  2. 컨테이너 동작 방식
    1. hub.docker.com: 컨테이너 이미지가 여러 개 저장되어있는 허브
      • docker search nginx
        • 도커허브에서 nginx(엔진엑스, 웹 서버를 의미함) 를 통해 컨테이너 이미지 찾기
        • 존재하는 경우 엔진엑스 리스트를 출력함.
      • docker pull nginx:latest
        • 도커 이미지를 하드디스크로 가져옴.
      • docker run -d  --name web -p 80:80 nginx
        • run 대신 create, start 명령어를 사용 가능
        • 컨테이너 이름을 넣어  이미지를 실행하여 컨테이너화 시킴.
      • docker rm image nginx (=docker rmi nginx)
        • nginx 라는 컨테이너 이미지 삭제
  3. 실습해보기
    1. Docker Hub에서 컨테이너 이미지 검색
      • docker search [NAME]
      • 도커 이미지가 레이어가 포함된 경로 
    2. container image 다운로드 후 image layer 보기
      • container image 다운로드
      • image layer 확인해보기 (총 6개의 레이어 확인 가능)
      • 설치된 docker image 목록 확인
    3. container 실행하고 확인해보기
      • docker 실행하기
        • 이름을 "web" 이라고 작성했고, 도커 정지 및 삭제에서 사용됨
      • 동작중인 docker process 목록 보여줌
      • client localhost 접속하여 확인하기
    4. 도커 종료 및 삭제하기
      • 도커 종료하기 : docker stop [이름] 
      • 도커 삭제하기 : docker rm [이름] (도커 이미지를 삭제한 것은 아니다)
      • 도커 이미지 삭제하기 : docker rmi nginx
        • nginx 라는 컨테이너 이미지 삭제