docker는 3학년때 들었던 강의해서 사용해 본 적이 있다. 그때는 mongoDB + node 조합으로 배웠지만 이번엔 MariaDB + Spring Boot 조합으로 사용할 것이다.
분명 그때 시험공부한다고 뭔갈 잔뜩 외웠는데 기억에 남는것은 이리도 없는 것인가...
리눅스 컨테이너를 기반으로 하는 오픈소스 가상화 플랫폼이다.
즉슨... 가상화된 컨테이너라는 것을 띄워서 그 위에서 돌려주는 것이다.
잘 정리된 블로그가 있어서 가져왔다. 요지는 VM은 Guest OS 위에 Bins/Libs를 올려서 겁나 무겁지만 Docker는 바로 올려서 상대적으로 가볍다는 것이다.
docker build [옵션] [작성한 dockerfile 경로]
와 같이 작성하면 작성한 도커파일의 내용을 기반으로 이미지 빌드가 시작된다.# Java 런타임을 포함하는 베이스 이미지로 시작
FROM amazoncorretto:17
# 유지보수자 정보 추가
LABEL maintainer="lv2dev@example.com"
# /tmp에 볼륨 추가
VOLUME /tmp
# 이 컨테이너 외부로 8099 포트를 사용 가능하게 함
EXPOSE 8099
# 애플리케이션의 jar 파일
ARG JAR_FILE=build/libs/*.jar
# 애플리케이션의 jar 파일을 컨테이너에 추가
ADD ${JAR_FILE} app.jar
# jar 파일 실행
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
spring.datasource.url=jdbc:mariadb://host.docker.internal:3306/mydb
# JAR 파일 빌드
./gradlew build
# Docker 이미지 빌드
docker build -t lv2dev/echonet .
# Docker 컨테이너 실행
docker run -p 8099:8099 lv2dev/echonet