docker 란?

애플리케이션을 신속하게 구축, 테스트, 배포할 수 있도록 설계된 오픈소스 플랫폼

“코드를 한 번 작성하면 어디서든 실행할 수 있다” << docker 의 원칙

구성 요소

dockerFile - container를 구성하기 위한 기본환경(java), 디팬던시, 로컬에서의 파일 복사 위치, 필요한 환경변수, 실행 스크립트를 작성 image - build/run 명령어를 통해 dockerFile을 이미지화 하여 컨테이너를 만들 수 있는 설계도 container - dockerFile에 명시된 내용이 실행되는 구역. 실질적으로 우리의 어플리케이션이 구동되는 환경과 동일한 환경을 제공

docker 와 같은 서비스

podman - 별도의 데몬이 없고 루트권한 없이 실행할 수 있는 컨테이너 엔진. docker cli와 호환이 가능하여 docker 명령어를 그대로 사용 가능. kubernetes와 같은 컨테이너 오케스트레이션 도구와 호환성이 좋음. chatgpt : 그러나 Podman에서는 이러한 데몬이 없습니다. 이는 각각의 컨테이너를 독립적인 프로세스로 실행함으로써, 컨테이너의 라이프사이클을 데몬 없이 관리할 수 있게 해줍니다. 이로 인해 루트 권한이 없는 환경에서도 Podman을 사용할 수 있으며, 보안성이 향상되는 장점이 있습니다.

rkt(rocket) - 보안에 초점을 맞추어 설계된 docker 엔진. 그러나, 2020년 12월에 서비스 중단.