Docker란?

Steve·2022년 4월 18일
0

🎈 Docker란?

  • 도커는 컨테이너 기술을 기반으로 한 일종의 가상화 플랫폼
    독립된 환경을 만들어서 하드웨어를 효율적으로 활용하는 기술

configuration 환경설정
staging 발판
hassle 귀찮은

🤔 쓰는 이유?

만든 코드를 어디서든 돌아가도록 하게 하기 위해.
도커를 이용하여 프로그램을 설치하면 예상치 못한 에러도 덜 발생하며, 설치하는 과정도 훨씬 간단해짐.

build, share, run

Deploy your applications in separate containers independently and in different languages. Reduce the risk of conflict between languages, libraries or frameworks.
여러 애플리케이션을 번거롭지 않게 제공하고 디자인, 테스트, 스테이징 및 프로덕션(데스크톱 또는 클라우드 네이티브)을 포함한 모든 환경에서 동일한 방식으로 실행하도록 합니다.
애플리케이션을 별도의 컨테이너에 독립적으로 다른 언어로 배포합니다. 언어, 라이브러리 또는 프레임워크 간의 충돌 위험을 줄입니다.

개발환경 구축시 많은 시간을 소비하지만,
도커를 사용하면 간단하게 개발환경 구축 가능!

도커는 컨테이너를 사용하여 응용프로그램을 더 쉽게 만들고 배포 및 실행 할 수 있도록 해주는 도구.

*컨테이너
코드와 모든 종속성을 패키지화하여 응용 프로그램이 한 컴퓨팅 환경에서 다른 컴퓨팅 환경으로 바르고 안정적으로 실행되도록 하는 소프트웨어의 표준 단위

서버에서의 컨테이너 - 일반적인 의미의 컨테이너처럼 쉽게 이동시켜준다. 다양한 프로그램 및 실행환경을 컨테이너로 추상화하고 제공하여 쉽게 배포 및 관리할 수 있도록 도와주는 것
프로그램을 손쉽게 이동, 배포, 관리할 수 있게 해 준다.

🚛 컨테이너 이미지

코드, 런타임, 시스템 도구, 시스템 라이브러리 및 설정과 같은 응용 프로그램을 실행하는 데 필요한 모든 것을 포함하는 가볍고 독립적이며 실행 가능한 소프트웨어 패키지!

도커 이미지는 프로그램을 실행하는데 필요한 모든 설정과 종속성을 가진다.

도커 이미지를 이용해서 도커 컨테이너를 만들고, 도커 컨테이너 안에서 응용프로그램이 실행된다.

도커 컨테이너는 도커 이미지의 인스턴스이다.

https://velog.io/@markany/%EB%8F%84%EC%BB%A4%EC%97%90-%EB%8C%80%ED%95%9C-%EC%96%B4%EB%96%A4-%EA%B2%83-1.-%EB%8F%84%EC%BB%A4%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80


가상화:
하나의 하드웨어를 여러 개의 가상 머신으로 분할해 효율적으로 사용할 수 있는 기술
분할된 가상 머신들은 각각 독립적인 환경으로 구동
이 때 베이스가 되는 기존의 환경을 Host OS, 그리고 가상 머신으로 분할된 각각의 환경을 Guest OS라고 부릅니다.
가상 머신을 생성하기 위해서는 하이퍼바이저 또는 가상 머신 모니터라고 불리는 소프트웨어를 이용합니다.
————————
컨테이너:
컨테이너는 가상의 OS를 만드는 것은 아닙니다.

컨테이너는 베이스 환경의 OS를 공유하면서 필요한 프로세스만 격리하는 방식
커널을 공유하기 때문에 호스트 OS의 기능을 모두 사용할 수 있습니다. 그렇기 때문에 컨테이너 위에서는 호스트 OS와 다른 OS를 구동할 수 없습니다
대신 격리시킬 애플리케이션과 거기에 필요한 파일이나 특정 라이브러리 등 종속 항목만 포함하기 때문에 배포를 위해 생성되는 이미지의 용량이 작아진다는 장점이 있습니다. 운영체제가 아닌 프로세스이며, 하이퍼바이저를 거칠 필요가 없어 실행 속도가 빠름.

이미지(레이어라는 계층 구조로 이루어짐)
가상 머신이나 컨테이너 또는 프로그램을 실행하는 데 필요한 파일과 라이브러리, 설정 등을 가지고 있는 파일입니다.
변경 사항이 생기면 새로운 레이어를 추가해서 기록합니다.
이미지 전체를 새로 받지 않고 해당 레이어만 받는 것으로 이미지를 업데이트할 수 있다는 장점이 있음

이미지를 실행하면 프로세스, 즉 컨테이너가 됨.

profile
Front-Dev

0개의 댓글