본문 바로가기
TIL/기타

도커 (Docker)

by yeon_zoo 2022. 1. 18.

프로젝트를 하면서 도커에 대해서 이름을 들어보게 되었다. 배포와 관련해서 사용되는 거라는 건 알겠는데, 정확히 어떤 역할을 하는지는 헤매고 있었다. 이번에 새로 수강하게 된 강의에서 도커를 살짝 다루기도 하고, 최근에 노마드 코더 유투브에서 도커에 대한 영상을 찾아보기도 하면서, 구체적인 사용법까지는 아니더라도 어디에 사용되는지 정도는 이해하게 되었다.

 

도커는 환경의 차이를 극복하기 위해서 만들어졌다. 예를 들어 내가 개발한 환경은 윈도우이고, 개발한 것을 올릴 서버는 리눅스이면 OS의 차이로 인해서 문제가 생길 수 있다. 도커는 이런 문제를 해결해준다. 서로 다른 OS에서도 똑같이 동작할 수 있도록 해주는 것이다. 이를 위해서는 먼저 내 컴퓨터인 윈도우에 도커를 설치한다. 그리고 나서 서버에도 도커를 설치한다. 그리고 도커파일을 생성한다. 여기에 내가 구현하고 싶은 환경(우분투, 파이썬, 깃 등)을 설정하면 된다. 이렇게 설정된 도커 파일을 내 컴퓨터와 서버 모두에 설치하게 되면, 도커가 그 파일을 읽어와서 필요한 걸 다운로드 받고 파일 내에서 설정된 환경과 동일한 버츄얼 컨테이너를 컴퓨터에 만든다. 서버에도 역시 내가 필요로 하는 모든 것을 도커가 읽어와서 다운로드 할 수 있도록 해준다. 그래서 컴퓨터에서 서버로 docker 파일과 함께 코드를 업로드하면 정상 작동하게 되는 것이다.

 

이 때 각 컨테이너들은 분리되어 있고, 각각의 컨테이너가 독립적이라고 여겨지는데 그렇기 때문에 하나의 서버라도 여러 개의 컨테이너 (예를 들면, 파이썬 컨테이너, 장고 컨테이너, 자바 컨테이너 등) 이 동시에 존재할 수 있다. 도커를 이용해서 이런 컨테이너들을 쉽게 관리할 수 있다. 만약 자바 앱의 사용자 수가 갑자기 증가하게 되면 자바 컨테이너 수를 늘려서 조절할 수 있다. 그리고 다시 트래픽이 줄면 해당 컨테이너의 수를 줄이면 된다. 이렇게 하면 매번 새로운 서비스를 만들 때마다 새로운 서버를 사고 설정할 필요가 없다. 단순히 컨테이너를 생성하고 복사하면 되는 것이다. 

 

오늘 도커를 켜보는 강의를 들으면서, 전에 프로젝트 하면서 MySQL 때문에 약간의 문제를 앓았던 경험이 생각났다. 어떤 환경이 달라서인지 정확한 문제는 아직까지 찾지 못했지만 (열심히 문제가 뭔지 찾았지만, 근본 원인은 못 찾고 대략 해결이 되는 것 같아서 넘어갔던 문제이다) 팀원 중에 한 분의 MySQL이 설정이 잘못되어서 MySQL과 Django 연결이 어려웠다. 여러 패키지를 다운로드 받아봐도 잘 해결이 안되던 문제였다. 만약 이럴 때 Django DB와 MySQL 도커 컨테이너를 연결했다면 조금 더 쉬웠을까 싶은? 생각이 들었다. 아무래도 도커에 대해 좀 더 공부해 본 후에 답을 찾을 수 있을 것 같다. 

 


0. 도커 설치하기

도커를 켜서 정상 작동되는지 보는 법은 간단하다. 

먼저 아래 사이트에서 도커를 다운받는다. 

 

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

다운 받은 후에 앱을 눌러 켜주게 되면 화면 상단(윈도우는 화면 하단)에 도커 표시가 뜨게 된다.

 

 

 

그러면 터미널 창을 켜서 도커를 작동시켜준다. 

$ docker run -d -p 80:80 docker/getting-started

명령어를 통해서 작동시킬 수 있다. 그러면 이런 암호같은 문자열을 보여주게 되는데, 이게 컨테이너 id라고 이해하면 될 듯 하다. 

 

127.0.0.1/80 의 로컬호스트 url로 들어가보면 아래와 같은 페이지를 확인할 수 있다.

도커를 종료하는 건 다음 명령어를 이용하면 된다. 

$ docker rm -f [컨테이너 id]

컨테이너 id는 전부를 복사 붙여넣기 해도 되지만 식별가능한 수준으로 7~8글자만 적어줘도 종료가 가능한 것 같다. 

 

 

이렇게 도커의 개념과 아주 간단한 설치 작업을 해볼 수 있었다. 

도커 사용법은 추후에 더 많은 내용을 공부하고 직접 적용해본 후에 정리할 수 있을 것 같다. 

댓글