GitHub

https://github.com/Backcoder-June

BackCoder 기록 그리고 숙달

Back to the Docker

[ Docker ] docker 란

Backcoder 2022. 12. 28. 13:11

지난 글에서는 AWS 의 EC2 서버를 빌려 개발환경을 한땀한땀 구축하고, 

Jenkins 를 연동해 Github에 Push => Jenkins 에서 Build만 하면 배포버전이 Update 되도록 했었습니다. 

 

이 과정은 시간을 오래 잡아먹습니다. 

깡통인 서버를 빌려, JDK 부터 시작해 Jenkins, Tomcat, MySQL, Apache 등 필요한 요소들을 하나하나 설치, 설정 해주어야 했습니다.

 

=> Docker 를 사용해 이러한 과정을 쉽고 빠르고 가볍게 완료할 수 있었습니다. 

 

 

[ Docker ] 를 왜 써야 할까 

Docker는 애플리케이션을 신속하게 구축, 테스트 및 배포할 수 있는 소프트웨어 플랫폼입니다. Docker는 소프트웨어를 컨테이너라는 표준화된 유닛으로 패키징하며, 이 컨테이너에는 라이브러리, 시스템 도구, 코드, 런타임 등 소프트웨어를 실행하는 데 필요한 모든 것이 포함되어 있습니다. Docker를 사용하면 환경에 구애받지 않고 애플리케이션을 신속하게 배포 및 확장할 수 있으며 코드가 문제없이 실행될 것임을 확신할 수 있습니다.

AWS에서 Docker를 실행하면 개발자와 관리자가 어떠한 규모에서든 매우 안정적이며 저렴한 방식으로 애플리케이션을 구축, 제공 및 실행할 수 있습니다.

                                                                                                                                             - 출처 : AWS 공식홈페이지 

 

 

신속, 편리, 안정, 저렴 

정도가 키워드가 되는 것 같습니다. 

빠르게 개발환경을 구축할 수 있고, 

OS종류에 상관없이 docker 명령어를 공통언어로 사용할 수 있고, 

관리도 원활하게 해주는 등 확실히 강점이 많이 있는 것 같습니다.  

AWS 공식 홈페이지

 

어떻게?

Docker는 어떤 방식으로 이런 편리한 서비스를 제공해 주는 걸까요

키워드는 '가상' 인 것 같습니다. 

 

AWS 공식 홈페이지

 

Docker 는 가상화 방식을 이용해 사용자 입장에서 '컨테이너' 와 '이미지' 를 사용해 서비스를 이용할 수 있게 해줍니다.

 

각각의 OS 에서 yum, apt get 등 명령어를 사용해 다운받았던 Jenkins, MySQL 등의 프로그램들을 

=> Docker hub 에서 '이미지' 로 가볍고 빠르게 가져다 쓸 수 있게 해줍니다.

docker pull mysql

 

가져온 이미지로 컨테이너를 생성하면 

docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=test1234 -d -p 3306:3306 mysql

 끝! 바로 해당 이미지를 사용할 수 있게됩니다. 

 

열심히 만든 프로젝트 또한 배포파일을 '이미지' 로 Build 하고 => 컨테이너를 생성하면 바로 동작시킬 수 있는 것이죠.

 

이렇게 이미지를 컨테이너에 담아서 관리할 수 있고, 각각의 컨테이너는 독립적이기 때문에 이전이나 관리에 있어서 더욱 장점을 갖게 되는 것 같습니다. 

 

Docker는 실제 구현은 그렇게 긴 과정이 아니었지만, 개념과 흐름에 대해서 이해하는게 어려운 면이 있었습니다. 

다음 글에서는 이렇게 AWS에서도 열심히 추천하는 Docker를 사용해 

AWS 에서 프로젝트를 배포하고 DB와 연동해보고자 합니다.