| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
- c
- htmlinjection
- System
- 백준
- cloud
- docker
- SISS
- CodeEngn
- EC2
- basicrce3
- python
- Reversing
- datastructure
- cgroup
- Systemhacking
- Reflected
- fork-bomb
- bWAPP
- Linux
- backjoon
- AWS
- 와이어샤크
- Dreamhack
- pwnable
- 자료구조
- beebox
- mount
- wireshark
- 유석종교수님
- acc
- Today
- Total
Ctrl + Shift + ESC
[Docker] Docker 입문수업 - 1. 수업소개 본문

컴퓨터에서 어플리케이션을 만들기 위해서는 운영체제의 여러 소프트웨어를 설치해야 한다.
예를 들어 웹을 만들기 위해서는 웹 서버와 데이터베이스 등을 설치해야 한다.
하지만 여러 번 설치해야 하기 때문에 번거롭다.

전문가가 적당한 운영체제를 깔고 웹 서버와 DB를 함께 배포한 뒤 네트워크로 사용하면 이런 문제를 해결할 수 있다.
하지만 이렇게 하기 위해서는 컴퓨터가 3대나 필요하다.

하나의 컴퓨터에 가상으로 컴퓨터를 만들고 그 위에 운영체제를 설치한 후, 그 위에 웹 서버를 설치한다면 컴퓨터를 별도로 장만하지 않아도 될 것이다. (Vmware, Virtualbox)
하지만 웹 서버를 운영하기 위해 운영체제를 까는 것은 비효율적이다.
운영체제의 용량이 크고, 운영체제 위에 또 운영체제가 있으면 실행 속도가 느려지기 때문이다.

따라서 한 대의 컴퓨터 안에서 각각의 앱을 실행시키면 좋을 것이다.
그리고 각각의 앱은 그냥 실행되는 것이 아니라, 격리된 환경에서 실행된다.
호스트 : 운영체제가 설치된 컴퓨터
컨테이너 : 호스트에서 실행되는 격리된 각각의 실행환경
각각의 컨테이너에는 운영체제가 설치되어 있는 것이 아니고, 앱을 실행하는 데 필요한 라이브러리와 실행 파일들만 포함되어 있다.
이에 대한 이점으로는
1. 이미 존재하는 운영체제를 공유하므로 무언가를 설치할 필요가 없다.
2. 운영체제가 하나이므로 속도가 느려지지 않는다.
3. 운영체제를 다시 할 필요가 없어 시간 절약과 용량 절약이 가능하다.
이 있다.
리눅스 운영체제에는 이러한 앱 실행 방법이 내장되어 있는데, 이러한 기술을 컨테이너라고 부른다.
그리고 컨테이너 기술을 이용해서 이런 일을 쉽게 해주는 소프트웨어들이 여럿 있는데, 그 중에서 가장 많이 사용되는 것이 도커이다.