도커란?

VMWare나 VirtureBox같은 기존의 가상머신의 OS 가상화와 다른 방식인 컨테이너(Container)기반의 가상화 플랫폼입니다. 기존 OS 위에 추가로 게스트 OS를 올려야하는 OS 가상화에 비해 성능적인 면에서 우위를 점한다고 볼 수 있습니다.


도커 설치하기

먼저 도커 홈페이지에 들어가셔서 Get Started를 누릅니다.

image

버튼을 누르면 아래 페이지로 이동하게 되는데 Docker Desktop에서 본인 환경에 맞는 파일을 받으시면 됩니다.

image

파일 다운로드가 끝나면 설치를 진행하시면 됩니다. 설치가 완료되면 컴퓨터를 재부팅해야하는데 재부팅 하면 아래와 같은 창을 볼 수 있습니다.

image


VS Code 설치하기

비주얼 스튜디오 코드(Visual Studio Code)는 Microsoft에서 제공하는 여러 언어들을 지원하는 소스코드 편집기입니다. 현재 이 블로그도 해당 편집기를 이용해 제작하고 있습니다.

홈페이지에 들어가셔서 다운로드하시면 됩니다.

image


다운로드 후 아래와 같은 창이 뜨면 정상적으로 설치가 된 것입니다.

image


도커 사용하기

[windows]-[r] 을 누르고 cmd를 실행하여 명령 프롬프트를 실행해봅시다. 다음 아래의 구문을 입력해봅시다.

docker run hello-world

image

docker에서 hello-world라는 이미지를 실행시키는 명령어입니다. 여기서 이미지(image)는 컨테이너 실행에 필요한 파일과 설정값 등을 포함하는 것을 말합니다. 즉 컨테이너는 이미지를 실행한 상태라고 볼 수 있습니다. 같은 이미지로 여러 개의 컨테이너를 생성할 수 있습니다.

위의 상황은 내 컴퓨터에 hello-world라는 이미지가 없어서 웹에서 이미지를 다운로드 받아 실행이 되었습니다.

이미지를 불러와 실행하는 것을 확인하기 위해 Python을 설치해봅시다.

도커에 Python 설치

이번에는 도커에 Python을 설치해보도록 하겠습니다. 이번에 설치하는 것은 미니콘다(miniconda)로 Python 카테고리에서 설치했었던 아나콘다의 최소 기능만 담은 버전이라고 생각하시면 됩니다.

설치 코드를 확인하기 위해 도커 허브(docker hub)에 가서 확인하고 받아보도록 합시다.

도커 허브

홈페이지에 들어간 다음에 상단 검색창에 miniconda3을 검색합니다.

미니콘다

continnumio/miniconda3을 클릭한 후 오른쪽을 보면 Docker Pull Command라는 칸이 있습니다. Docker에서 해당 이미지를 받는 코드입니다. 복사합시다.

설치 코드

다시 cmd창으로 가셔서 복사한 그대로 실행합시다.

설치

도커에 이미지를 다운 받아서 설치가 완료되었습니다. 이미지를 실행해봅시다.

이미지

도커로 이미지를 실행하는 명령인데 뒤에 /bin/bash를 이해하기 위해서는 리눅스(Linux)에 대한 지식이 약간 있어야 합니다. 셸(Shell)은 리눅스에서 명령어에 대한 해석기 기능을 하는데 본 셸, 콘 셸, 배쉬 셸 등이 있습니다. 즉, 이 명령어는 배쉬 셸 기반으로 이미지를 실행하라는 명령이 되겠습니다.

명령어 실행 후 C 드라이브 경로가 (base) root 로 시작하는 문자로 바뀌었습니다.

Python을 가볍게 실행시켜봅니다.

파이썬

다음으로는 필요한 모듈을 설치해봅시다. beautifulsoup4와 requests를 설치할 것입니다.

모듈 설치

정상적으로 다운로드 진행 완료

컨테이너 저장하기

모듈 설치까지 완료한 컨테이너를 그대로 방치하면 종료시 휘발합니다. 따라서 다시 사용하기 위해서 저장을 해야합니다. 저장을 하기 위해서는 해당 컨테이너의 ID를 알아야 합니다. 컨테이너들의 정보를 보기 위해 아래 명령문을 실행합시다.

컨테이너 저장

ps는 컨테이너를 살펴보는 옵션이고 -a는 모든 것을 살펴보는 옵션입니다. 컨테이너 ID를 살펴본 후 docker commit 컨테이너_id 저장할_이름:태그명 의 형식으로 저장하면 됩니다. 이 방식으로 저장한 컨테이너는 이름:태그를 불러서 불러올 수가 있습니다.

컨테이너 불러오기

마운트하기

마운트는 윈도우 환경과 도커 사이를 연동하는 것을 말합니다. 마운트를 하게 되면 파일의 공유가 쉬워져 윈도우에서 가져온 파일을 리눅스 환경에서 다룰 수 있게 됩니다.

VMWare에서는 설치한 게스트 OS의 IP값을 가져오고 하는 등 복잡한 절차가 있었는데 도커에서는 명령어 하나면 됩니다.

docker run -itv 윈도우_폴더:컨테이너_폴더 컨테이너_이름:태그명

마운트

이 명령어를 실행하면 명령어에 입력한 윈도우의 폴더와 컨테이너 안의 폴더가 마운트되어 컨테이너 상으로 마운트된 윈도우 폴더의 내용을 바로 볼 수 있게 됩니다.


(일부 스크린샷은 강의자료에서 발췌하였습니다.)