유튜브 'TTABAE-LEARN'

모든 출처는 https://youtu.be/3HId-tpYaZs

6. 도커 컨테이너 살펴보기

1. 컨테이너 / 컨테이너 이미지 이론

컨테이너 = 하나의 Application 이자 하나의 Process!

컨테이너는 각각의 어플리케이션으로 독립된 공간을 가지기 때문에 서로 영향을 주고받지 않기 때문에 개별적인 수정이 가능하고 cpu, memory, network, disk 등 컴퓨터 리소스 또한 따로 차지한다.(user나 hostname 까지도 따로 할당된다.)

Docker Host = 리눅스 커널 환경에서 docker daemon이 실행되는 시스템
이말인 즉 도커가 컨테이너가 구동될 수 있는 플랫폼을 만들어놨다!

도커 데몬이 없다면 도커 컨테이너는 실행될 수 없다.(설명)
커널 및 하드웨어가 한 개라도 구동가능하며 그 리소스를 나눠갖는다.
Host입장에서 컨테이너는 그저 한개의 독립적인 프로세스일뿐

컨테이너 이미지 = 컨테이너 내부 레이어를 이미지화 시킨 것

컨테이너는 어떤 어플리케이션이 정상적으로 동작할 수 있도록 계층적인 구조를 가진다. 이때 각 계층을 이미지화 시켜 빌드한다.

출처

출처

  • 도커 호스트(도커 데몬+리눅스) 위에서 도커 컨테이너는 구동된다.
  • 컨테이너 이미지는 도커 호스트의 저장소에 파일 형태로 존재한다.(Read Only)
  • 컨테이너 이미지가 사용자에 의해 running 되면 하나의 독립적인 프로세스로 작동한다.
  • 위에서 사용되는 이미지를 가져오기 위한 예를 들어 보면이후 해당 도커호스트(서버)에서 사용자는 nginx 기반 어플리케이션을 구동할 수 있다.
  • + 도커 클라이언트 커맨드? 도커에 대한 수행 명령어
  • $ docker search nginx = 컨테이너 이미지를 검색한다 $ docker pull nginx:latest = 존재하는 컨테이너 이미지를 가져온다 $ docker run -d --name web -p80:80 nginx:latest = 컨테이너 이미지 running + 80포트 = HTTP(웹)

2. 컨테이너 동작 방법 실습

  • XShell을 통한 실습
  1. 도커 데몬 동작 확인(root)
  2. systemctl status docker
  3. 도커 호스트 동작 및 상태 확인(사용자)
  4. docker version
  5. 도커 컨테이너 유무 확인(root)
  6. docker search nginx
  7. 도커 컨테이너 이미지 설치(root)
    4-1. 설치된 컨테이너 확인
    docker pull nginx
    cd /var/lib/docker/
    ls -l
  8. 4-2. nginx 설치
    다섯개의 이미지 layer(각 파일) 다운로드
  9. docker image ls cd /var/lib/docker/ ls -l
  10. 컨테이너화 & 실행(사용자)
  11. docker image ls docker run --name web -d -p 80:80 nginx docker ps curl localhost:80
  12. 프로세스(컨테이너)의 UUID 확인 가능.
    80포트를 통해 Website 방문 가능.
  13. 컨테이너 중지 및 삭제
    docker stop web
    curl localhost:80
    docker rm web
    docker rmi nginx
  14. 실행되고 있는 컨테이너 정지 컨테이너 삭제 컨테이너 이미지 삭제