docker 소개
Categories:
- docker 소개
docker 소개
- docker는 애플리케이션 컨테이너 엔진으로, 애플리케이션과 그 의존성을 하나의 이식 가능한 컨테이너에 패키징한 후 인기 있는 Linux 또는 Windows 머신에 배포하거나 가상화를 구현할 수 있습니다.
- 왜 docker가 있을까요? 개발자와 운영진이 자주 겪는 문제가 있는데, 개발 환경에서는 아무 문제 없이 실행되던 애플리케이션이 실제 운영 환경에서는 버그가 발생하는 것입니다.
- 프로그램의 실행은 하드웨어 아키텍처부터 운영체제, 그리고 애플리케이션에 이르기까지 여러 단계가 있지만, 개발자는 종종 애플리케이션 개발에만 집중하고 다른 단계의 문제는 무시하는 경향이 있습니다.
- docker는 이런 문제를 해결하기 위해 등장했습니다. 애플리케이션과 그 의존성을 하나의 컨테이너에 패키징함으로써 환경 문제를 걱정하지 않아도 됩니다.
- 개발 환경과 운영 환경을 동기화하여 개발자가 로컬에서 애플리케이션을 개발, 테스트, 배포할 수 있게 하며 환경 문제를 걱정하지 않아도 됩니다. 개발 및 운영 효율을 크게 향상시키며, 약간의 리소스 낭비라는 대가를 치릅니다.
모든 개발자에게 컨테이너를 사용한 개발 및 배포를 배울 것을 강력히 권장합니다. 상대적으로 낮은 비용으로 안정적인 실행 환경을 제공하여 개발 및 운영 효율을 높일 수 있습니다.
docker를 사용한 작업 흐름을 일반적인 언어로 설명하면 다음과 같습니다:
- 운영체제, 애플리케이션, 의존 패키지, 구성 파일 등을 포함한 개발 환경을 처음부터 생성합니다.
- 환경은 어디서든 실행 가능하고, 어디서든 생성할 수 있습니다.
- 환경에서 소스 코드를 컴파일한 결과는 안정적이며 예측 가능하고, 행동은 완전히 일관됩니다.
- 환경에서 프로그램이 실행되어 발생하는 모호함이 없습니다.
- 선언적 방식(docker-compose)으로 환경을 생성하는 것이 좋으며, 이를 통해 환경의 숨겨진 차이를 더욱 감소시킬 수 있습니다. 환경의 모든 것은 선언에 명시되어 있습니다.
- commit을 생성하고 이미지를 만듭니다. 이는 현재 환경을 저장하는 스냅샷과 같으며, 나중에 사용할 수 있습니다.
- 이미지를 다른 개발자와 운영진과 공유하여 모두 동일한 맥락에서 작업을 진행합니다.
- 비즈니스의 발전과 요구에 따라 이미지를 수정하고, 다시 commit을 생성하고, 이미지를 다시 만들고, 다시 배포합니다.