- naeilhome 배포 시 DB 설치 과정 및 연동 과정
- 나는 도커로 설치하는 것으로 진행해봄.
- 아래 도커에 대해서 기본적인 설명을 읽어보고 진행하면 이해가 더 잘될 것임.
- 새벽 2시까지 작성했어요. 이거보고 이해안되면 저한테 물어보지 마시고 찾아보세요….
Doker란?

도커의 원리
도커는 컨테이너 기반의 가상화 기술로, 각각의 애플리케이션이 독립된 환경에서 실행되도록 해준다. 컨테이너는 가상 머신과는 다르게 호스트 운영 체제의 커널을 공유하며, 가벼운 환경에서 격리된 프로세스들을 실행할 수 있다. 이로 인해 여러 개의 컨테이너가 하나의 운영 체제 위에서 실행되지만, 서로 독립적이고 안전하게 동작할 수 있다.
컨테이너는 하드웨어와 운영 체제를 가상화하는 대신, 운영 체제의 커널을 공유하고, 필요한 라이브러리나 의존성만 포함시켜, 가상 머신보다 훨씬 더 효율적이고 경량화된 환경을 제공한다. 이로 인해 빠른 시작 시간과 낮은 리소스 소모가 가능하다.
- 컨테이너는 가볍고 빠른 작은 '상자’라고 생각하면 된다.
- 이 상자 안에는 애플리케이션이 실행되기 위해 필요한 코드, 라이브러리, 설정 등이 모두 들어 있다.
도커와 가상 머신의 차이점

- 가상 머신 (VM) : 가상 머신은 각기 독립적인 운영 체제를 실행하는데, 이를 위해 하이퍼바이저(가상화 소프트웨어)가 필요하다. 각 VM은 별도의 운영 체제와 커널을 갖고 있으므로 많은 자원과 시간이 소모됩니다. 가상 머신은 커널뿐만 아니라 전체 운영 체제를 포함하므로 여러 VM을 실행할 때 상당히 많은 시스템 자원을 요구한다.
- 가상 머신은 운영 체제(OS) 전체를 가상화해서 각각 독립된 OS를 실행한다.
무겁고 시작되는데 오랜 시간이 걸린다.
- 도커 컨테이너 : 도커 컨테이너는 호스트 운영 체제의 커널을 공유하면서, 각 애플리케이션이 격리된 공간에서 실행된다. 컨테이너는 운영 체제의 가상화를 최소화하고, 필요한 애플리케이션과 라이브러리만 포함되기 때문에 훨씬 더 가볍고 빠르며, 동일한 하드웨어에서 훨씬 더 많은 인스턴스를 실행할 수 있다.
- 도커 컨테이너는 호스트 컴퓨터의 운영 체제 커널(핵심 부분)을 공유한다.
즉, OS를 통째로 복제하지 않고 필요한 부분만 묶어서 실행하기 때문에 훨씬 가볍고 빠르다.
<aside>
💡
도커는 자원을 효율적으로 관리할 수 있어, 많은 수의 컨테이너를 한 시스템에서 실행할 수 있으며, 각 컨테이너가 동일한 하드웨어 리소스를 공유하면서도 서로 독립적으로 실행된다. 반면, 가상 머신은 각각 별도의 운영 체제를 포함하고 있기 때문에, 동일한 하드웨어에서 가상 머신을 많이 실행하면 성능 저하가 발생할 수 있다.
- 빠른 시작: 컨테이너는 OS를 부팅할 필요 없이 바로 실행돼서 시작 시간이 매우 짧다.
- 낮은 리소스 사용: 전체 OS를 복제하지 않으니 메모리와 CPU 사용이 적다.
- 이식성: 한 환경에서 만든 컨테이너를 다른 환경에서도 똑같이 실행 가능하다.
- 격리와 보안: 서로 다른 컨테이너는 독립적으로 동작해 충돌이나 보안 문제를 줄여준다.
</aside>
운영 체제 커널 공유
컨테이너는 호스트 OS의 커널을 같이 쓰면서도, 프로세스(작업)를 완전히 분리해 격리된 상태로 실행한다.
그래서 여러 컨테이너가 동시에 실행되어도 서로 영향을 주지 않고 독립적으로 동작할 수 있다.
- 가상 머신은 각자 독립된 집(운영 체제)을 짓는 것과 같다.
집마다 전기, 수도, 가구 등이 모두 새로 설치돼야 하니까 비용과 시간이 많이 드는 것처럼..
- 반면, 도커 컨테이너는 한 아파트(호스트 OS) 안에 여러 개의 방(컨테이너)을 만드는 것이다.
각 방은 독립된 공간이지만, 건물의 전기, 수도 시설은 공유하니까 훨씬 효율적이고 빠르다.