# 컨테이너 (Containers)

> For AI agents: the complete glossary index is at [llms.txt](https://glossary.cncf.io/ko/llms.txt).
> Markdown versions of every glossary page are available by appending `index.md` to the page URL.

## 개념

컨테이너(container)는 컴퓨터 운영 체제를 통해 관리되며 리소스 및 기능에 제약을 가지는 구동 프로세스(running process)이다. 
컨테이너 프로세스에서 사용할 수 있는 파일은 컨테이너 이미지로 패키징된다. 
동일한 머신(machine)에서 컨테이너들은 서로 인접한 형태로 실행되지만, 
일반적으로 운영 체제는 개별 컨테이너 프로세스들이 서로 상호 작용하는 것을 방지한다.

## 다루는 문제

컨테이너를 사용하기 전에는, 각 애플리케이션을 실행하기 위한 개별 머신이 필요했다. 
이 경우 각 머신은 자체 운영 체제(CPU, 메모리 및 디스크 공간을 차지)가 필요하고, 
주로 대부분의 자원들이 개별 애플리케이션을 구동하기 위해 사용된다. 
또한 운영 체제에 대한 유지 관리, 업그레이드 및 구동(startup)은 또 다른 노역의 원인(source of toil)이 될 수 있다.

## 문제 해결 방식

컨테이너들은 동일한 운영 체제와 머신의 리소스를 공유하여 
운영 체제의 리소스 부하(overhead)를 분산시키고 물리 머신을 효율적으로 사용할 수 있게 한다. 
이 특징은 컨테이너간의 상호 작용이 일반적으로 제한되어 있기 때문에 가능하다. 
이를 통해 동일한 물리 머신에서 더 많은 애플리케이션들을 실행할 수 있다.

그러나 여기에는 한계도 존재한다. 컨테이너들이 동일한 운영 체제를 공유하므로, 
다른 대안들에 비해 프로세스는 덜 안전해 보일 수 있다는 점이다. 
또한 컨테이너에는 공유 리소스에 대한 제한도 필요하다. 
리소스를 보장하기 위해 관리자는 메모리와 CPU 사용을 제약(constrain) 및 제한(limit)하여 
다른 애플리케이션들의 성능이 저하되지 않도록 해야 한다.

---

- Canonical URL: https://glossary.cncf.io/ko/container/
- Status: Completed
- 최근 수정 July 21, 2022: ` [ko] Add tags to each localized term (#1037) ` ([72aec07](https://github.com/cncf/glossary/commit/72aec0720c0e339ff5195aae1651c3b802e55831))
- Source: https://github.com/cncf/glossary/blob/main/content/ko/container.md
- License: [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/)
