클라우드를 공부하게되면 면접에서 나올법한 질문인 Container와 VM에 대한 설명을 정리해보고자 한다. Container 애플리케이션 중심으로 설계가 되었으며 컨테이너는 별도의 OS나 드 라이버 없이 호스트를 공유하는 형태로 실행된다. VM이 서버를 여러대로 사용할 수 있게 해주었다면 컨테이너는 애플리케이션을 독립적으로 실행해주기 위해 가상 공간을 할당해준다. VM보다 작은단위이며 처리하는 일도 적기 때문에 보다 간단하고, 빠르고, 효율적으로 애플리케이션을 실행시킬 수 있다. 대표적인 컨테이너는 Docker가 있다. VM 컴퓨터 환경을 가상화하여 소프트웨어로 구현한 것이다. VM은 서버, 호스트, Hyper-v 위에 올라가고 OS, 드라이버, 메모리 등 컴퓨터 환경이 구성되기 위한 필요요소들을 갖춰진..
저번장에 정리했던 Dockerfile에서 주로쓰이는 명령어 내용을 참고하여 Spring Boot 애플리케이션을 생성후 Docker 이미지로 빌드후 실행해보자 Spring Boot 애플리케이션 생성 환경은 JAVA 11, Spring Boot 2.5.5 버전이고 Web 의존성만 추가하자 포트번호를 8000으로하고 간단한 컨트롤러 클래스를 생성해보자. 근데 컨트롤러의 hello 메서드에는 docker-app 이라는 이름의 환경변수에 해당하는 값을 조회하는데 이따가 Docker 이미지를 빌드할 때 컨테이너 내부에 docker-app 이라는 환경변수를 추가해줄 것 이다. 그리고 포트번호 또한 빌드할 때 명령어로 추가해줄 것 이다. Dockerfile 작성 FROM openjdk:latest ARG port EX..
우리가 개발한 애플리케이션을 Docker image로 build하려면 "Dockerfile" 이라는 이름의 파일을 작성해주어야 하는데 이 Dockerfile에는 Docker 이미지로 build하기위해서 어떠한 명령어들을 수행해야하는지 명령어가 적힌 파일이다. 해당 명령어를 모두 처리하면 Docker 이미지로 build할 수 있다. 이제 주로 쓰이는 명령어들을 알아보자. FROM FROM 이미지명:태그명 어떤이미지를 사용할 것인지 이미지명과 태그명을 적는다. 보통 Dockerfile의 최상단에 위치하는 명령어이다. 이미지명과 태그명은 도커 헙 공식문서 에서 확인할 수 있다. 예를들어 openjdk 이미지의 최신버전을 사용하기 위해서는 FROM openjdk:latest 라고 적어주면 되고 터미널에서 실행할..
Docker 도커는 컨테이너 환경에서 독립적으로 애플리케이션을 실행할 수 있도록 컨테이너를 만들고 관리하게 해주는 컨테이너 도구입니다. 컨테이너는 하나의 운영체제 커널에서 다른 프로세스에 영향을 받지 않고 독립적으로 실행되는 프로세스를 의미합니다. Docker를 사용해야 하는 이유 예를들어 N개의 운영체제에 동일버전의 웹서버, WAS, JAVA, DB를 설치해야한다고 가정할 때 각 운영체제에 접근해서 설치를 해야하고 추후에 서버가 증설될 때도 그 서버에도 위에 설치했던것들을 해줘야하는 반복적인 작업을 해야만 했습니다. 하지만 Docker를 이용하게되면 명령어 단 몇줄로도 간편하게 서버를 구축할 수 있습니다. Docker의 장점 손쉽게 애플리케이션 환경구성을 할 수 있습니다. 운영체제 환경에 관계없이 독립..