- 컨테이너는 소프트웨어 배포를 간편하고 빠르게 해준다.
🍝 또한, 실행 환경에 구애받지 않고 프로그램을 실행할 수 있게 해준다.- 컨테이너 기술은 하나의 컴퓨터 내부에 여러개의 컨테이너 환경을 만들고, 이를 통해서 각각의 어플리케이션 환경을 격리한다.
- 어플리케이션을 쉽게 컨테이너화시키는 대표적인 생태계가 Docker Hub이다.
🍖 특정 컨테이너 내부의 프로세스는 기본적으로 그 컨테이너에서만 접근할 수 있고, 컨테이너 내부에서 실행되는 프로세스는 다른 컨테이너의 프로세스에 영향을 끼칠 수 없다.
🍗 기본적으로 컨테이너마다 각각 IP주소가 할당된다.
🥩 컨테이너 내부에서 사용되는 파일 시스템은 구획화되어 있고, 따라서 해당 컨테이너에서의 명령이나 파일 등의 접근을 제한할 수 있다.
의존성 충돌 문제를 해결해준다.
🥛 컨테이너에서 실행되는 어플리케이션은 어떤 의존성도 공유하지 않고, 각자의 고유한 의존성을 포함한다.
개발과 배포 환경을 일치 시킨다.
🍸 도커를 사용하면, 운영체제에 상관없이 간편하게 어플리케이션 실행환경을 만들 수 있고, 컨테이너 위에서 개발을 진행하면 모든 개발팀이 동일한 환경에서 개발을 할 수 있게 된다.
더 손쉽게 배포할 수 있게 해준다.
🥧 AWS EC2에 도커를 설치하거나, 도커 컨테이너를 EC2에서 실행할 수 있게 해주는 서비스인 ECS를 통해서 쉽게 어플리케이션을 배포할 수 있다.
수평 확장을 쉽게 해준다.
🥃 트래픽의 증가로 서버를 증설할 때, 컨테이너를 통하여 실행 환경을 일치시킬 수 있다.
각 서버에 새로운 내용을 배포하기 쉽게 해준다.
- 이미지는 어플리케이션 및 그 구성을 함께 담아놓은 탬플릿이다.
- 실행되는 모든 컨테이너는 이미지로부터 생성된다.
- 기존 이미지를 변경하여 다른 이미지를 만들 수도 있다.
🍊 레지스트리는 이미지가 저장되는 곳으로, Docker Hub, Amazon ECR와 같은 이미지 레지스트리가 있다.
🍊 새로운 컨테이너를 생성할 때, 호스트 컴퓨터에 이미지가 없으면, 기본 레지스트리로부터 다운 받는다.
참고 자료 : 코드 스테이츠