Docker, 너 누구야!

이주희·2022년 10월 17일
1

Docker

목록 보기
2/16
post-thumbnail

애플리케이션을 만들기 위해서는 운영체제(OS)에 여러 소프트웨어를 설치해야 한다.

웹 개발을 한다면 웹 서버, 데이터베이스 등을 설치해야 한다.
이것들을 설치하는 것은 여간 까다롭고 귀찮은 일이 아니다.


웹 서버를 만든 사람이 컴퓨터를 구해서 운영체제를 설치하고, 그 위에 웹 서버와 데이터베이스를 설치해서 우리에게 준다면 아주 편리할 것이다.

그리고 우리의 앱이 네트워크로 통신해서 이것들을 사용하면 아주 좋겠지만,
이렇게 하면 컴퓨터가 세 대나 필요하므로 비용이 많이 든다.


가상 컴퓨터에 운영체제를 설치한다면 ?


기존의 가상화 기술은 하이퍼바이저를 이용해 여러 개의 운영체제를 하나의 호스트에서 생성해 사용하는 방식이었다.

하나의 컴퓨터에 가상으로 컴퓨터를 만들고 그 위에 운영체제를 설치해 웹 서버를 설치한다면, 컴퓨터를 별도로 장만하지 않아도 된다.
(vmware, virtualbox가 이런 방식)

그러나, 겨우 웹 서버를 설치하기 위해서 운영체제를 설치하는 것은 낭비이다.

🧐 왱?

운영체제는 용량이 크고, 운영체제 위에서 운영체제를 돌리면 실행 속도도 느려지기 때문이다!

가상 머신은 완벽한 운영체제를 생성할 수 있다는 장점이 있지만, 일반 호스트에 비해
성능 손실이 있으며, 수 기가바이트에 달하는 가상 머신 이미지를 애플리케이션으로 배포하기는 부담스럽다.

Container 기술

한 대의 컴퓨터 안에서 격리된 환경에서 각각의 앱을 실행시킨다.

  • 운영체제가 설치된 컴퓨터를 주인이라는 뜻으로, host
  • 격리된 각각의 실행 환경을 container라고 부른다.

각각의 컴퓨터에는 운영체제 전체가 설치된 것이 아니고,
앱을 실행하는 데 필요한 라이브러리와 실행 파일(lib, bin)만 존재한다.

이렇게 하면 이미 존재하는 운영체제를 공유하므로 운영체제를 별도로 설치하지 않아도 되고,
운영체제가 하나이므로 속도도 느려지지 않는다.

👉🏻 시간도 절약하고 저장 장치의 용량도 아낄 수 있다.


리눅스 운영체제에는 이러한 앱 실행방법이 내장되어 있다.
이러한 기술을 container라고 부른다.

이 container 기술을 이용해서 이 일을 쉽게 해주는 소프트웨어들 중 제일 잘나가는 docker를 알아보자!!
Docker는 부두에서 컨테이너를 다루는 노동자들을 의미한다.


Docker

도커 컨테이너는 가상화된 공간을 생성하기 위해 리눅스의 자체 기능인 chroot, 네임스페이스, cgroup을 사용함으로써 프로세스 단위의 격리 환경을 만든다.

도커의 장점

  • 성능의 손실이 거의 없다.

  • 컨테이너를 이미지로 만들었을 때 이미지의 용량 또한 가상 머신에 비해 대폭 줄어든다.

  • 애플리케이션의 개발과 배포가 편해진다.

    • 독립된 개발 환경을 보장받을 수 있다.
    • 개발/운영 환경의 통합이 가능해진다.
    • 배포 속도가 매우 빨라진다.
  • 여러 애플리케이션의 독립성과 확장성이 높아진다.

    • 컨테이너는 수 초 내로 생성, 시작이 가능하다.
    • 여러 모듈에게 독립된 환경을 동시에 제공할 수 있다.
      👉🏻 위 두가지 이유로, 마이크로서비스 구조에서 가장 많이 사용되고 있는 가상화 기술이다.

도커를 설치해보자

docker와 같은 컨테이너 기술은 리눅스 운영체제의 기술이다.

도커 위에서 돌아가는 컨테이너, 또 컨테이너 안에서 동작하는 각각의 앱들은 리눅스 운영체제에서 동작하는 앱들이다.

자신의 컴퓨터가 리눅스가 아닌 window나 mac이라면,
가상 머신을 깔고 가상머신에 리눅스 운영체제를 깔아서 도커와 같은 컨테이너 기술을 사용할 수 있다.

이렇게 하는 것은 굉장히 어렵고 까다로워 보이지만,, 돈워리!
도커가 알아서 가상머신을 깔고 리눅스를 설치해준다!

  • 리눅스라면 그 위에서 바로 도커가 실행되기 때문에 성능에 저하가 없다.
  • 리눅스가 아니라면 가상머신을 설치하기 때문에 어느정도의 속도 저하를 감수해야 한다.

그럼에도, 도커를 사용하는 이유는 도커를 사용했을 때의 편의성이 어마어마하기 때문이다~!

👇🏻 설치 ㄱㄱ
https://docs.docker.com/get-docker/

도커는 GUI보다는, 명령어(terminal)을 이용해서 제어해야 도커의 풀파워를 발휘할 수 있다.ㅎㅎ

잘 설치되었는지 확인하기

docker images

위 명령어를 입력했을 때 에러가 나지 않는다면, 설치가 완료된 것!

profile
🍓e-juhee.tistory.com 👈🏻 이사중

2개의 댓글

comment-user-thumbnail
2022년 11월 2일

진짜 도커는 누구입니까 ㅠㅠ 잘보고 갑니다~

1개의 답글