docker compose를 통해 파이썬과 FastAPI를 이용할 것이다.
Docker는 컨테이너 서비스를 제공하는 애플리케이션이다.
컨테이너란 애플리케이션 코드와 필요한 라이브러리, 종속 항목 등을 함께 패키징하여 어디서나 실행 가능하도록 만든 소프트웨어 실행 단위이다.
실행에 필요한 모든 파일을 포함하며, 격리된 실행 환경에서 애플리케이션을 실행하는 기술로, 개발, 테스트, 프로덕션 등 다양한 환경에서 쉽게 이동할 수 있도록 해준다.
docker compose는 Docker가 제공하는 제품 중 하나로, 여러 개의 컨테이너를 한꺼번에 다룰 수 있게 해주는 도구이며, docker compose 명령을 실행하여 이용한다. Docker 내에 설치하는 이유는 다음과 같이 두 가지 이유가 있다.
1. 환경의 차이를 업애기 위해
2. 환경을 제한하기 위해
파이썬은 같은 운영체제 내에 여러 버전을 설치하고, 이를 바꿔가며 사용할 수 있다. 버전을 전환하는 방법은 환경에 따라 여러가지가 있다. 하지만 이 방법들은 표준이 정립된 상태라고 할 수 없다.
Docker를 이용하면 파이썬이 실행되는 운영체제와 이번에 작성할 API보다 하위 레이어의 시스템을 고정할 수 있으므로, 환경에 따른 차이를 상당히 줄일 수 있다. 이를 통해 이 책을 진행하면서 설치 시 발생하는 오류나 특정 명령어에 대한 오류를 줄일 수 있을 것으로 기대된다.
MySQL과 같은 데이터베이스는 더 낮은 레이어의 API를 이용하여 구축되는 경우가 많아서, 파이썬 실행 환경보다도 운영체제나 하드웨어에 더 의존하는 경향이 있다. 여기서도 환경의 차이를 흡수하는 Docker가 힘을 발휘한다. 또한 파이썬 실행 컨테이너와 mySQL 컨테이너를 분리함으로써 컨테이너간의 의존 관계를 명확히 할 수 있다.
Docker를 사용하면 파이썬과 데이터베이스 환경을 컨테이너 안에 가둬 둘 수 있으므로 문제가 발생했을 때 간단히 컨테이너를 다시 만들거나 폐기할 수 있어서, 결과적으로 호스트 머신의 환경을 오염시키지 않는다.
https://heroeswillnotdie.tistory.com/23