초보 개발자

docker란? docker설치 본문

AI 웹개발 트랙 - 내배캠/9주차 ~

docker란? docker설치

taehyeki 2022. 3. 7. 10:47

docker란 무엇이고 왜 사용할까!?🐳

내 컴퓨터에서 어떤 앱을 만들기 위해서, 운영체제에 여러 소프트웨어를 설치해야 한다.

예를들어 웹개발을 한다면 한 컴퓨터 내에 웹서버나 데이터베이스 등을 깔아야 한다.

 

그런데 해봐서 알겠지만 설치하는 것이 까다롭고, 그 과정 속에서 오류도 많이 일어난다.

 

그럼 이런 생각도 해볼 수 있다.

각 기능을 담당하는 컴퓨터를 하나씩 구해서 거기에 적당한 운영체제를 깔고  그 위에 웹서버, DB를 설치한 다음 네트워크로 통신하여 사용한다면 훨씬 좋아질 것이지만, 비용적인 측면에서 너무 비효율 적이다.

 

그럼 또 이렇게도 생각해볼 수 있을 것이다.

하나의 컴퓨터에 가상으로 컴퓨터를 만들고, 위에 운영체제를 설치한 후에 거기에 웹서버, db 등 설치하여 사용할 수 있다면 어떨까? 이렇게 되면 별도로 컴퓨터를 구하지 않아도 한 컴퓨터 내에서도 위와 같은 기능을 수행할 수 있을 것이다. Vmware, Virtualbox가 이와같은 개념이다.

 

단지 웹서버, DB를 돌리기 위해서 용량이 큰 운영체제를 설치한다면 이 또한 비효율적일 것이다. 또 운영체제 위에 운영체제가 존재하다 보니 컴퓨터는 느려질 것이다.

 

그럼 이렇게 하면 어떨까!?

한대의 컴퓨터 안에서 각각의 앱을 격리된 환경에서 실행시킨다. 이 때 운영체제가 설치된 컴퓨터를 주인이라는 뜻에서 host라고 하고, host에서 실행되는 격리된 각각의 실행환경을 container라고 하자.

 

각각의 컴퓨터에는 운영체제 전체가 설치되어 있는 것이 아니고, 각 기능을 실행하는데 필요한 라이브러리와 실행파일만 가지고 있다. 이미 존재하는 운영체제를 공유하니, 무엇인가를 설치할 필요도 없고, 운영체제가 하나니까 속도도 느려지지 않는다. 

 

리눅스에는 이런 앱 실행방법이 내장되어 있다. 이러한 기술을 컨테이너라고 부른다.

컨테이너 기술을 이용해서 이런 일을 쉽게 해주는 소프트웨어들이 여러개 있는데 그 중 제일 잘 나가는 것이 docker이다.

 

 

도커와 같은 container기술은 리눅스 체제의 기술이다.

따라서 아래와 같은 사실을 알 수 있다.

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

2. 자신의 컴퓨터가 리눅스 운영체제가 아니라면 도커를 쓸 수 없는걸까? 

-> 윈도우 혹은 맥os일 경우엔 컴퓨터에 가상머신을 깔고 그 가상머신에 리눅스os를 설치하면 리눅스 운영체제 위에서 도커와 같은 컨테이너 기술을 사용할 수 있게 된다.

 

근데 이렇게하면 굉장히 복잡할 것 같지 않나??

그런데 걱정할 필요가 없다!!! 바로 DOCKER🐳가 알아서 가상머신을 만들어 주고 그 위에 리눅스를 설치해준다.

 

 

docker 설치🔧🔨

도커를 설치해보자 ! 

Get Docker | Docker Documentation

 

Get Docker

 

docs.docker.com

여기에서 자신의 운영체제에 맞는 걸 설치해주자.

 

터미널에 docker images를 적고 오류가 안나면 잘 설치가 된 것이라고 하는데

나는 아래와 같은 오류가 났다. 스택오버플로우에 사진으로 친절히 설명이 되어있어 해결할 수 있었다.!!

The command 'docker' could not be found in this WSL 2 distro.

windows subsystem for linux - Ubuntu WSL with docker could not be found - Stack Overflow

 

Ubuntu WSL with docker could not be found

The command $ docker could not be found in this WSL 1 distro. We recommend to convert this distro to WSL 2 and activate the WSL integration in Docker Desktop settings. See https://docs.docker.com/d...

stackoverflow.com

 

이 글은 생활코딩의 설명을 글로 옮겨적었다.

 

생활코딩 Docker 입문수업 - 2. 설치 - YouTube

 

'AI 웹개발 트랙 - 내배캠 > 9주차 ~' 카테고리의 다른 글

docker network  (0) 2022.03.07
docker hub, pull, run  (0) 2022.03.07
동기 비동기에 대한 고찰....  (0) 2022.03.04
팀과제 그림제작 페이지  (1) 2022.03.03
async await  (0) 2022.02.28