728x90

Docker는 개발자가 격리된 컨테이너 내에서 애플리케이션을 생성, 배포 및 실행할 수 있도록 하는 인기 있는 오픈 소스 컨테이너화 플랫폼입니다. 컨테이너는 모든 종속성 및 구성 파일과 함께 애플리케이션을 다양한 컴퓨팅 환경에서 일관되게 실행할 수 있는 단일 단위로 캡슐화하는 경량의 독립 실행형 휴대용 패키지입니다.

Docker는 애플리케이션과 해당 종속성을 컨테이너 이미지로 패키징하는 방법을 제공합니다. 그런 다음 기본 운영 체제나 하드웨어 아키텍처에 관계없이 Docker가 설치된 모든 머신에서 배포 및 실행할 수 있습니다. 이렇게 하면 호환성 문제의 가능성이 줄어들고 필요한 인프라를 설정하는 데 필요한 시간과 노력이 최소화되므로 애플리케이션을 더 쉽게 개발, 테스트 및 배포할 수 있습니다.

Docker는 소프트웨어 개발 업계, 특히 클라우드 컴퓨팅 및 DevOps 환경에서 널리 사용되며 마이크로서비스, 서버리스 아키텍처 및 기타 최신 클라우드 네이티브 애플리케이션을 구축하고 배포하는 데 필수적인 도구가 되었습니다.

 

 

Docker 컨테이너 vs Docker 이미지 

 

Docker 컨테이너는 Docker 이미지의 런타임 인스턴스입니다. 즉, 컨테이너는 이미지에서 생성되고 코드, 런타임, 시스템 도구, 라이브러리 및 설정을 포함하여 특정 애플리케이션을 실행하는 데 필요한 모든 것을 포함하는 가볍고 격리된 환경입니다.

컨테이너는 Docker가 호스트 시스템에 설치되어 있는 한 변경 없이 여러 환경에서 실행될 수 있는 이식 가능하고 일관된 단위로 애플리케이션과 해당 종속성을 패키징하는 방법을 제공합니다. 각 컨테이너는 자체 파일 시스템, 네트워킹 및 리소스와 함께 자체 격리된 공간에서 실행되며 동일한 호스트의 다른 컨테이너와 독립적으로 시작, 중지 및 제거될 수 있습니다.

 

반면 Docker 이미지는 컨테이너를 만드는 데 필요한 모든 지침과 종속성을 포함하는 정적 읽기 전용 청사진 또는 템플릿입니다. 이미지는 기본 이미지 또는 기타 기존 이미지에서 이미지를 빌드하는 데 필요한 단계와 명령을 정의하는 텍스트 파일인 Dockerfile을 실행하여 생성됩니다.

요약하면 Docker 컨테이너와 Docker 이미지의 주요 차이점은 컨테이너는 이미지의 런타임 인스턴스인 반면 이미지는 컨테이너를 만드는 데 사용되는 정적 사전 구성된 패키지라는 것입니다. 이미지는 컨테이너를 빌드하는 데 사용되고 컨테이너는 애플리케이션을 실행하는 데 사용됩니다.

 

Docker 이미지가 진짜 그 이미지인가?

 

아니요, Docker 이미지는 그림이나 사진이라는 의미에서 실제 이미지가 아닙니다. 대신 Docker 이미지는 특정 애플리케이션 또는 서비스를 실행하는 데 필요한 모든 필수 파일, 라이브러리 및 종속성을 포함하는 사전 구성된 휴대용 패키지입니다.

Docker에서 "이미지"라는 용어를 사용하는 이유는 개체 또는 장면의 사진을 찍는 것과 유사하게 애플리케이션의 특정 상태 또는 구성에 대한 스냅샷 또는 표현을 생성한다는 아이디어를 반영하기 때문입니다. Docker 이미지는 코드, 런타임 및 구성 설정을 포함하여 애플리케이션의 현재 상태를 캡처하고 모든 Docker 지원 환경에서 공유, 배포 및 실행할 수 있는 자체 포함 단위로 패키징합니다.

 

 

 

 

728x90
728x90

같은 타입의 여러 객체를 저장하는 일종의 집합

컨테이너는 클래스 템플릿으로,

(컨테이너는..데이터를 저장하고 관리하기 위한 클래스)

컨테이너 변수를 선언할 때 컨테이너에 포함할 요소의 타입을 명시할 수 있다.

컨테이너에는 복사 생성과 대입을 할 수 있는 타입의 객체만을 저장할 수 있고

요소의 추가 및 제거를 포함한 다양한 작업을 도와주는 여러 멤버 함수를 포함하고 있다.

 

 

컨테이너의 종류

STL에서 컨테이너는

자료를 저장하는 방식

관리하는 방식에 따라 여러 가지 형태로 나뉠 수 있음

 

STL 컨테이너는 크게 다음과 같이 세 가지 유형으로 구분됨

 

1. 순차(시퀀스) 컨테이너(sequence container)

데이터를 선형으로 저장하며, 특별한 제약이나 규칙이 없는 가장 일반적인 컨테이너

 임의의 위치에 삽입, 삭제가 가능합니다.

 데이터를 순차적으로 저장합니다.

 일반적인 자료구조와 동일한 형태

 자료를 입력한 순서대로 저장하기 떄문에 저장, 검색, 알고리즘에 불리

 => 많지 않은 자료, 검색 속도 중요하지 않을 때 사용

 

 

vector(가변배열), deque(덱,앞뒤로 넣고 빼는큐), list(양방향 연결리스트), forwad_list(단방향 연결리스트)

 

2. 연관 컨테이너(associative container)

데이터를 일정 규칙에 따라 조직화하여 저장하고 관리하는 컨테이너

검색에 유리

 

set, multiset, map, multimap

 

3. 어댑터 컨테이너 (adapter container)

결함과 명료성을 위해 인터페이스를 제한한 시퀀스나 연관 컨테이너의 변형

단, 반복자를 지원하지 않으므로 STL 알고리즘에서는 사용할 수 없습니다.

 

 

stack, queue, priority_queue

 

출처

http://tcpschool.com/cpp/cpp_container_intro

 

코딩교육 티씨피스쿨

4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등

tcpschool.com


출처: https://heekim0719.tistory.com/314 [별토끼 DEVLOG]

 

[C++] STL Container 개념 및 특징

[C++] STL Container 개념 및 특징 STL(Standard Template Library) 란? C++의 템플릿을 이용해 표준으로 정리된 라이브러리 STL의 구성 요소 1. 반복자 :STL 컨테이너에 저장된 원소들을 가리키는 포인터 2. 컨테..

heekim0719.tistory.com

 

728x90

+ Recent posts