지난 글에서는 AWS 의 EC2 서버를 빌려 개발환경을 한땀한땀 구축하고,
Jenkins 를 연동해 Github에 Push => Jenkins 에서 Build만 하면 배포버전이 Update 되도록 했었습니다.
이 과정은 시간을 오래 잡아먹습니다.
깡통인 서버를 빌려, JDK 부터 시작해 Jenkins, Tomcat, MySQL, Apache 등 필요한 요소들을 하나하나 설치, 설정 해주어야 했습니다.
=> Docker 를 사용해 이러한 과정을 쉽고 빠르고 가볍게 완료할 수 있었습니다.
[ Docker ] 를 왜 써야 할까
Docker는 애플리케이션을 신속하게 구축, 테스트 및 배포할 수 있는 소프트웨어 플랫폼입니다. Docker는 소프트웨어를 컨테이너라는 표준화된 유닛으로 패키징하며, 이 컨테이너에는 라이브러리, 시스템 도구, 코드, 런타임 등 소프트웨어를 실행하는 데 필요한 모든 것이 포함되어 있습니다. Docker를 사용하면 환경에 구애받지 않고 애플리케이션을 신속하게 배포 및 확장할 수 있으며 코드가 문제없이 실행될 것임을 확신할 수 있습니다.
AWS에서 Docker를 실행하면 개발자와 관리자가 어떠한 규모에서든 매우 안정적이며 저렴한 방식으로 애플리케이션을 구축, 제공 및 실행할 수 있습니다.
- 출처 : AWS 공식홈페이지
신속, 편리, 안정, 저렴
정도가 키워드가 되는 것 같습니다.
빠르게 개발환경을 구축할 수 있고,
OS종류에 상관없이 docker 명령어를 공통언어로 사용할 수 있고,
관리도 원활하게 해주는 등 확실히 강점이 많이 있는 것 같습니다.
어떻게?
Docker는 어떤 방식으로 이런 편리한 서비스를 제공해 주는 걸까요
키워드는 '가상' 인 것 같습니다.
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와 연동해보고자 합니다.
'Back to the Docker' 카테고리의 다른 글
[ Docker ] Spring 프로젝트 컨테이너+ MySQL 컨테이너 연동하기 (0) | 2022.12.28 |
---|---|
[ Docker ] 도커로 Spring 프로젝트 AWS 배포하기 ( DockerHub ) (0) | 2022.12.28 |