본문 바로가기

Container/생활코딩 Docker

[Docker] Docker를 시작해보자

반응형

🔊 해당 포스팅은 이고잉님의 생활코딩 오픈튜토리얼의 Docker 입문 수업을 듣고 제 개인적으로 정리하는 목적하에 작성되는 포스팅입니다. 보다 자세한 강의는 여기를 참고해주세요.

 

 Docker는 항상 궁금했지만 다가가기 어려웠던 개념이었다. 무엇인가 백엔드 지식과 관련이 있는 것 같아 지레 겁먹고 어떤 개념인지 조차 알아보지도 않았던 것이 팩트이다. 얼마 전 이고잉님께서 오픈 튜토리얼스로 Docker에 대한 입문 강의를 제작해주셨고 바로 강의를 들으러 갔다. 이번 강의도 다가가기 쉽고 강의 시간도 매우 짧을 뿐더러 설명도 잘해주셨다! 심지어 무료 강의이다. 개인적으로 Docker가 무엇인지 모르겠다면 꼭 들어보자. Docker를 다루는 엔지니어가 아니더라도 Docker에 대한 이해가 전제된다면 추후에 같이 어디선가 함께 일하게 될 Docker를 사용하는 엔지니어 분과 소통이 매우 잘되지 않을까?

 

Docker는 무엇일까?

 

Docker에 대한 정의를 구글링 해보면 다음과 같다. "도커는 리눅스의 응용 프로그램들을 프로세스 격리 기술들을 사용해 컨테이너로 실행하고 관리하는 오픈 소스 프로젝트" 이다. 정의상으로 '리눅스'에 국한된다고 하지만 몇 년 전만해도 리눅스에서만 운용이 가능했지만 현재는 Mac, Window에서 모두 사용이 가능하다고 한다. 어쨌거나 개념에 대해 간단하게 이해해보자. 우리는 하나의 웹 페이지를 개발했고 이 웹페이지를 배포, 운영하려면 항상 컴퓨터를 켜놓아야 하는 서버(컴퓨터) 1대가 필요하다. 이 때 AWS나 GCP같은 클라우드를 이용해 인스턴스를 생성하기도 한다. 그런데 서버 1대를 개설하려면 무조건적으로 용량을 많이 차지하는 OS 즉, 운영체제를 깔아주어야 한다. 그런데 만약 이 때 Docker를 사용하게 되면 운영체제를 별도로 깔지 않고 컨테이너 기반으로 하나의 운영체제 위에 실행이 가능하다. Docker를 사용함으로써 얻는 자세한 이점에 대해서는 이고잉님의 해당 강의를 꼭 참고해보자. 그림을 그려주시면서 설명을 잘 해주시니 강추한다.


1. Docker를 설치해보자

자, 이제 Docker를 설치해보자. 필자는 Mac OS를 사용 중이므로 Mac 기준으로 설명하려고 한다. Docker Documentation 사이트를 들어가서 Download and install 버튼을 클릭해 자신이 사용 중인 OS에 맞는 다운로드 버튼을 누른다.

 

Docker Documenation

 

자신이 사용중인 OS에 맞게 설치하자

 

위와 같이 설치가 완료되면 Docker 이라는 아이콘이 생겨 클릭해보면 다음과 같은 화면이 나타난다.

 

Docker GUI 화면

2. Docker에서 Image, Container를 만들어보자

위의 화면은 Docker를 GUI 화면으로 사용하기 좋게 만든 프로그램이다. CLI에 익숙하지 않은 분들은 위 화면에서 Image를 pull하고 Container를 Run 하면 된다. 그런데 Image는 무엇이고 Pull? Run? 은 무엇인가? 이에 대한 개념을 이해하기 위해서 다음의 이고잉님 그림 자료를 살펴보자.

 

Docker에서 Image를 pull, Container를 run 하기

 

우선 그림의 왼쪽을 보자. 평소에 다운로드 받고 싶어하는 게임 앱이 있다. 그러면 우리는 그것을 다운로드 받으려고 app store에 가서 앱 이름을 검색한다. 그리고 그 게임 앱(program)을 다운로드 받는다. 다운로드 받아진 게임 앱을 체험해보고 싶어 앱(program)을 더블클릭하면 게임을 실행시키기위한 한 개이상의 process들이 실행된다.

 

위의 경우를 Docker 개념에 대입하면 다음과 같아진다. app store는 Docker hub에 대응이 된다. Docker hub은 일반적으로 널리 사용되는 여러가지 오픈소스 소프트웨어를 다운로드 받을 수 있게 해 놓은 일종의 app store 같은 마켓이다. Apache 웹서버 같은 소프트웨어들도 들어 있다. 그리고 다운로드 받을 수 있는 소프트웨어를 Docker에서는 Image가 된다. Docker hub 웹 브라우저 화면은 다음과 같다.

 

Docker Hub에서 Apache 웹 서버 SW를 다운로드 받아보자.

 

아파치 웹서버 소프트웨어를 Docker로 다운로드 받기 위해서 httpd를 검색하면 위와 같이 여러가지 소프트웨어들이 등장한다. 그리고 httpd를 클릭해보면 아래와 같이 httpd 라는 소프트웨어(Image)를 다운로드 할 수 있는 CLI 명령어를 알려준다. 이 쯤이면 추측하겠지만 Image를 다운로드 받는 용어를 Pull 이라고 한다.

 

httpd라는 image를 pull(다운로드) 해보자


자, 이제 용어 개념도, 명령어도 알았으니 직접 Image를 pull 하고 Container를 run 시키는 방법은 다음 포스팅에서 알아보기로 하자. 참고로 하는 방법은 CLI 기준으로 설명하려 한다. 그리고 CLI로 Docker를 운용시키기 전에 Docker Engine를 실행시켜야 하므로 반드시 아래와 같이 Docker 아이콘을 클릭해 엔진을 실행시켜두고 터미널을 열자.

 

Docker 아이콘을 반드시 먼저 실행시키자


끝으로, 인카토스라는 회사에서 감사하게도 제게 협찬을 해주신 제품을 하나 소개하려고 합니다. 그것은 바로 아래 사진의 Docker 컨테이너 각티슈 케이스입니다!

 

인카토스에서 협찬해주신 Docker 컨테이너 각티슈 휴지 케이스

 

개발 공부를 하다 보면 원인불명의 에러 때문에 땀을 흘리거나 눈물(?)을 흘리기도 하는데요! 겨울철엔  감기라도 걸리면 모니터 앞에서 콧물을 흘리기도, 한여름엔 개발을 너무 열심히 한 나머지 땀을 흘리기도 합니다.

 

하지만 이 제품을 곁에 두고 개발을 하게 되면 귀여운 Docker 컨테이너가 제공하는 티슈 한 장을 편하게 뽑아 쓰면서 개발 텐션을 끊지 않고 이어갈 수 있답니다~!  특히, 마치 개발 관련 장비를 하나 늘린 것처럼 마음이 한켠 든든해지는 기분입니다! 해당 제품에 관심이 있으시다면 아래 링크로 들어가시면 됩니다. 다시 한 번 좋은 제품을 협찬해주신 인카토스에 감사인사 드립니다! :)

 

💡 판매처 인카토스 : https://incatos.shop/

 

반응형