Docker

Jinjin·2023년 8월 1일
0
  • 도커를 사용하는 이유?
    : 실행 중인 환경에 관계 없이 언제나 동일하게 실행하기 위해서

  • 도커 컨테이너란?
    : 소프트웨어의 실행에 필요한 모든 것을 포함하는 것이 컨테이너이고 도커는 컨테이너 기반의 오픈소스 가상화 플랫폼


Container란?

  • VM 과 Container의 차이점?
    : VM은 서버 하드웨어를 가상화하는 방식이고 컨테이너는 서버 운영 체제를 가상화한다.

  • 기존의 가상화 방식은 주로 OS를 가상화했지만 컨테이너는 호스트 OS위에 게스트 OS 전체를 가상화해서 사용하는 방식이다.

    • 이 방식(OS를 가상화하는 방식)은 여러가지 OS를 가상화(리눅스에서 윈도우를 돌리는 과정) 할 수 있고 비교적 사용법이 간단하지만 무겁고 느려서 운영환경에선 사용할 수 없었다.
    • 각각의 가상머신이 OS를 자체적으로 가지고 있기 때문에 OS를 가상머신 이미지에 포함해야 하고, 배포 이미지의 용량이 커지게 된다는 단점이 있다.
  • Docker의 Container 기술을 사용하면 OS 레벨은 공유하고 어플리케이션 레벨에서는 각각의 어플리케이션을 격리해서 실행 할 수 있다.

    • 하나의 서버에 여러 개의 컨테이너를 실행하면 서로 영향을 미치지 않고 독립적으로 실행할 수 있다.
    • 실행중인 컨테이너에 접속하여 여러 개의 프로세스를 백그라운드로 실행할 수도 있다.
    • CPU나 메모리 사용량을 제한할 수 있고 호스트의 특정 포트와 연결하거나 호스트의 특정 디렉토리를 내부 디렉토리인 것처럼 사용할 수도 있다.



Image란?

  • Docker에서 Image는 컨테이너를 정의하는 읽기 전용 템플릿입니다.
    (컨테이너 실행에 필요한 파일, 설정 값등을 포함하고 있는 것으로 상태 값을 가지지 않고 변하지 않는다)
    => 따라서 이미지를 사용하면 동일한 컨테이너를 만들 수 있다.
    => 컨테이너 안에서 변경된 내용이 이미지에 영향을 주게 된다면 우리는 항상 동일한 값을 가진 컨테이너를 만들 수 없다.

  • 만약 파일이나 설정을 변경하고 싶다면?
    : 기존에 있던 이미지를 실행시키고, 만들어진 컨테이너 안에서 추가하거나 삭제하고 변경된 내용을 새로운 이미지로 만들어내면 됩니다.
    즉, 이미지를 변경하고 싶다면 새로운 이미지를 만들어야 한다.

  • 컨테이너는 이미지를 실행한 상태라고 볼 수 있고 추가되거나 변하는 값은 컨테이너에 저장된다.

  • 같은 이미지로 여러 개의 컨테이너를 생성할 수 있고 컨테이너의 상태가 바뀌거나 컨테이너가 삭제되더라도 이미지는 변하지 않고 그대로 남아있다.



참고 1 : https://velog.io/@plate0113/Docker%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80

참고 2 : https://hu-nie.tistory.com/entry/Docker-%EC%99%80-VM%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90

참고 3 : https://velog.io/@kdaeyeop/%EB%8F%84%EC%BB%A4-Docker-%EC%99%80-VM%EC%9D%98-%EC%B0%A8%EC%9D%B4

profile
BE Developer

0개의 댓글