ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Docker Springboot 컨테이너 만들기
    Docker 2021. 12. 25. 09:07
    728x90

    spring boot 로 구현한 api 서버를 도커로 배포하기로 하였음

     

    다음과 같은 Dockerfile 생성

    # openjdk8을 기반 이미지로 설정, jdk 로 안하고 경량화 위해 jre 로 해도 됨
    FROMopenjdk:8-jdk-alpine
    
    # Make port 13080 available to the world outsie this container
    EXPOSE 13080
    
    # build시 사용되는 변수 설정
    ARGJAR_FILE=target/*.jar
    
    # 컨테이너에 파일 복사
    COPY${JAR_FILE}app.jar
    
    # 실행 명령 정의
    ENTRYPOINT["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

     

    이후 dockerfile 존재하는 위치로 이동후 도커 파일 빌드한다.

    docker build -t springboot:test .

     

    실행은 다음과 같다. 각 옵션의 자세한 사항은 도커 매뉴얼 참고

    아래 명령어는

    -p 13080 포트를 호스트와 내부 컨테이너 연결한다는 것

    -d 데몬 이용해 백그라운드에서 실행

    -i -t 는 -it 으로 줄일수 있고, 터미널과 컨테이너가 연결되도록 한다는 의미

    docker run -i -t -d -p 13080:13080 springboot:test

     

    맨 처음위 위와같이 실행햇는데 컨테이너가 바로 종료됐음

    디비 연결정보를 잘못적어 디비 연결 하지못해 spring boot 부팅이 안됐던것

    로그 보기가 어려워 다음과 같이 변경해 로그 보고 수정 했음

    그러면 shell에 로그 프린트 된다.

    docker run -p 13080:13080 springboot:test

     

    도커가 잘 떠잇는지 확인한다.

    docker ps

     

    아래와 같이 출력된다.

    CONTAINER ID   IMAGE            COMMAND                  CREATED        STATUS         PORTS                                           NAMES
    6105e03b844b   springboot:test   "java -Djava.securit…"   16 hours ago   Up 7 minutes   0.0.0.0:13080->13080/tcp, :::13080->13080/tcp   brave_panini

     

    도커 컨테이너 내부로(bin/sh 이용) 접속하려면 위 출력 결과물의 container id를 이용하면 된다.

    docker exec -it 6105e03b844b /bin/sh
    728x90

    'Docker' 카테고리의 다른 글

    docker 이미지 파일로 공유  (0) 2022.01.24
    Docker 운영 명령어  (0) 2022.01.19
    Docker mariadb 로컬에 디비 연동하기  (0) 2021.12.25
    docker 컨테이너 접속하기  (0) 2021.08.03
Designed by Tistory.