본문 바로가기
Back-end/Docker

[Docker] 무작정 시작하기 (1) - 설치 및 실행

by 허도치 2020. 1. 18.

  Docker는 지나가면서 들어보기만하고 직접 사용해본적은 없었다. 그저 VMware처럼 가상 OS를 사용하는 환경이겠거니 했다. 그러다가 여기에 관심을 가지게된 계기가 공부하면서 RabbitMQ나 MongoDB, Flask 등 여러개의 서비스를 사용하게 되면서 입력해야 하는 명령어들이 점점 많아졌기 때문이다. 그리고, Linux에서만 지원하는 기능들도 있기 때문에 Docker가 필요하게 되었다. Docker를 이제 막 사용하기 시작했기 때문에  많이 부족하지만, 사용하면서 찾아본 내용들을 정리하는 포스트를 작성해 나갈 계획이다.

 

 

이 포스트는 Window 기반으로 작성되었음.

 

 

1. Docker란?

   1-1. 리눅스의 응용 프로그램들을 Container 안에 배치시키는 일을 자동화하는 오픈 소스 프로젝트.

 

   1-2. 격리된 OS에 Container를 적재하여 CentOS나 Ubuntu와 같은 Linux 환경을 가볍게 사용할 수 있음.

 

   1-3. Image의 크기가 작기 때문에 배포하기가 쉬움.

         - Image란 서비스에 필요한 응용 프로그램과 소스 코드 등이 Build된 하나의 형태.

         - 이미 Build가 되어있기 때문에 받아서 바로 실행만 하면됨.

 

   1-4. Docker HUB와 같은 Registry를 통해 전세계 사람들과 Image를 쉽고 빠르게 공유를 할 수 있음.

 

 

2. Docker와 VM의 차이

[왼쪽] VM , [오른쪽] Docker

   2-1. Docker는 OS를 가상화하여 Container를 적재하는 방식.

        - Host의 OS를 Docker Engine을 통해 가상화하여 사용하기 때문에 리소스를 적게 차지함.

        - Host의 커널을 공유하여 사용하기 때문에 Host가 해킹을 당하면 Container 전체가 해킹당해 보안에 취약함.

        - 몇가지 명령어를 통해 쉽고 빠르게 제어할 수 있음.

        - 가상화된 Image의 크기도 작아서 공유하기 쉬움.

        

   2-2. VM은 가상화된 하드웨어에 Guest OS를 적재하는 방식

        - 그림에서 보이는것 처럼 하나의 서버가 추가될 때마다 Guest OS가 필요하기 때문에 리소스를 많이 차지함.

        - Host와 완전히 분리된 환경을 제공하기 때문에 Host가 해킹을 당해서 VM은 안전하게 보호됨.

        - 가상화된 Image의 크기가 커서 공유하기 어려움.

 

 

3. Docker 설치.

   3-1. 홈페이지 접속하여 회원가입 후 로그인.

         - https://www.docker.com

 

Get Started with Docker | Docker

Learn about the complete container solution provided by Docker. Find information for developers, IT operations, and business executives.

www.docker.com

 

   3-2. OS에 맞는 버전을 Download - https://hub.docker.com/search/?type=edition&offering=community

         - 우리는 Windows 버전을 다운로드.

 

   3-3. 로그인 후 [ Get started with Docker Desktop ]을 클릭하면 상세 튜토리얼을 진행할 수 있음.

         

4. Docker Desktop 실행.

    4-1. 설치가 완료되면 Docker Desktop을 실행.

 

   4-2. 실행이 완료되면 작업표시줄에 Docker 아이콘이 생김.

         - 실행이 완료되면 [ Docker Desktop is running ] 이라는 메시지가 뜸.

         - 아이콘을 오른쪽 클릭을 통해 Docker를 관리할 수 있음.

 

 

5. Container 실행.

   - 이전 포스트에서 Windows에 RabbitMQ를 설치했는데 gevent를 사용할 수 없어서 Docker로 갈아타려고함.

 

   5-1. 명령 프롬프트 실행.

 

   5-2. Docker Hub에서 RabbitMQ Image 검색.

         > docker search rabbitmq

 

   5-3. RabbitMQ Image 다운로드.

         > docker pull rabbitmq:latest

         - :latest는 가장 최신버전을 의미, 특정버전을 받고 싶은 경우 여기에 입력.

 

   5-4. Image 설치 확인.

         > docker images

 

   5-5. RabbitMQ Container 생성 및 실행.

         > docker run --name rabbitmq -d -p 5672:5672 -p 15672:15672 -e RABBITMQ_DEFAULT_USER=heo -e RABBITMQ_DEFAULT_PASS=heo rabbitmq 

 

         - docker run [옵션] 이미지명.

         - [ --name ]: Container의 이름으로 중복되지 않게 지어야함.

         - [ -d ]: Background로 실행, 생략하면 실행화면이 출력.

         - [ -p ]: 포워딩할 Port 지정. [HostPort]:[ContainerPort], Host에서 5672로 접속하면 Container의 5672로 연결.

         - [ -e ]: 환경변수 설정

         * 미리 Image를 받지않아도 run 명령어를 실행했을때 해당 Image가 없는 경우 찾아서 자동으로 설치해줌.

 

   5-6. 실행확인.

         > docker ps

         - [ -a ] 옵션을 사용하면 실행, 대기 중인 모든 Conatiner를 확인할 수 있음.

 

   5-7. 실행종료.

         > docker stop rabbitmq

 

 

6. 마치며.

   - 우선 간단하게 Docker에 대해서 알아보고 설치와 실행까지 해보았다. RabbitMQ는 별도의 설정을 하지않으면 육안으로 확인하기 어렵기 때문에 설치하고 실행, 종료까지만 해보았다.

   - 다음 포스트에서는 RabbitMQ를 통해 Docker 명령어들을 살펴보겠다.

'Back-end > Docker' 카테고리의 다른 글

[Docker] 무작정 시작하기 (2) - 명령어  (0) 2020.01.18

댓글