그누보드 G6 with Docker
Docker란 무엇인가?
1. Docker 사용의 장점
도커는 컨테이너 기반 가상화 기술로, 애플리케이션을 격리된 환경에서 실행할 수 있게 합니다. VM과 달리 하드웨어 가상화가 아닌 운영체제 수준에서 동작하며, 더 가볍고 빠른 실행이 가능합니다. 도커 컨테이너는 필요한 라이브러리와 환경을 포함하여 독립적으로 실행되며, 호스트 시스템의 리소스를 효율적으로 활용합니다. 또한 이미지로 애플리케이션과 그 의존성을 패키징하여 이식성과 확장성을 강화합니다. 도커는 개발, 배포, 운영 등 전체 개발 수명주기를 단순화하여 개발자와 운영팀 간의 협업을 향상시킵니다.
환경 일관성: 도커는 파이썬 애플리케이션을 격리된 환경에 패키징하여 일관된 실행 환경을 제공하므로, 호스트 시스템의 차이로 인한 문제를 최소화합니다.
쉬운 배포: 도커 이미지로 애플리케이션을 패키징하면, 다양한 환경에서 쉽게 배포할 수 있습니다. 이미지는 빠르게 전달되며, 종속성 및 환경 설정이 이미 포함돼 있어 배포 과정이 간소화됩니다.
확장성 및 유연성: 도커 컨테이너는 가볍고 빠르게 실행되며, 필요에 따라 쉽게 스케일링이 가능하므로 애플리케이션의 확장성이 높아집니다.
개발자와 운영팀 간 협업 강화: 도커는 개발 환경과 운영 환경을 표준화하며, 동일한 환경에서 개발과 테스트가 이루어져 협업이 원활해집니다.
리소스 효율성: 도커는 호스트 시스템의 자원을 효율적으로 활용하므로, 가상 머신에 비해 더 가벼우면서도 높은 성능을 제공합니다.
2. Docker 사용의 단점
보안 문제: 도커 컨테이너는 커널을 공유하기 때문에 적절한 보안 설정이 이루어지지 않으면 컨테이너 간에 보안 이슈가 발생할 수 있습니다.
데이터 지속성 관리 어려움: 도커는 기본적으로 상태를 저장하지 않으며, 데이터는 별도의 볼륨이나 외부 서비스에 저장해야 합니다. 이로 인해 데이터 관리가 어려울 수 있습니다.
네트워킹 복잡성: 다수의 컨테이너가 네트워크를 공유할 때 설정이 복잡해질 수 있고, 컨테이너 간의 통신 문제가 발생할 수 있습니다.
UI 환경 부재: 기본적으로 도커는 명령행 인터페이스를 사용하므로, UI를 제공하지 않아 초기 학습 곡선이 존재하고 사용자 편의성이 부족할 수 있습니다.
가상화 오버헤드: 가벼운 컨테이너라 할지라도, 일부 상황에서는 가상화 오버헤드가 발생할 수 있어 워크로드에 따라 성능이 하락할 수 있습니다.