도커에 대해 자세히 작성한 좋은 글이 있었지만 나름대로 간략히 정리해본 내용입니다.

[DevOps] 도커(Docker)는 왜 쓸까?

요기는 원본 글




도커는 다양한 운영체제에서 리눅스의 컨테이너 환경을 제공하기 위한 엔진 입니다.

컨테이너(container)는 뭘까?

컨테이너는 애플리케이션을 실행할 수 있는 환경입니다.

운영체제와는 다른 개념으로 리눅스 운영체제에서 애플리케이션을 실행할 수 있는 독립된 환경을 제공하는데 이때, 독립된 환경이 컨테이너 입니다.

조금 더 자세한 내용은 차후 글 작성으로 대체하겠습니다.

도커를 사용하는 이유 1. 애플리케이션을 구동하기 위한 환경을 제공

동일하게 작성된 애플리케이션이라도 실행하는 환경이 달라지면 정상적으로 작동하지 않을 수 있습니다.

만약, Java 11에서만 지원하는 기능을 사용해서 애플리케이션을 작성했는데 다른 컴퓨터에 Java 11을 위한 JVM이 없다면 동작하지 않게됩니다. (똑같이 쳤는데 왜 안되지?...)

도커는 작성된 애플케이션 뿐 아니라 당시 개발 환경까지 그대로 담아서 사용 서버에서 실행해주기 때문에 현재 환경에 상관없이 작성된 그대로 애플리케이션을 실행할 수 있습니다.

https://blog.kakaocdn.net/dn/br8apd/btrCkpa98gP/bi5wuCFm1LDraxDFqCVCsK/img.png

개발 환경에서 Java 11로 개발한 애플리케이션을 이미지라는 형태로 저장하고 도커 서버에 업로드 -> 실행 환경에서 해당 이미지를 다운로드 -> 도커 컨테이너에서 바로 실행