설 연수
하하호홓
설 연수
전체 방문자
오늘
어제
  • 분류 전체보기 (231)
    • Back-End (2)
      • Java (20)
      • JSP (13)
      • Spring (18)
      • Kotlin (0)
      • node.js (0)
    • Front-End (68)
      • JavaScript (19)
      • jQuery (39)
      • Angular (4)
      • HTML (5)
    • Dev-Ops (12)
      • Linux, Cloud (5)
      • docker, k8s (5)
      • ElasticSeach (2)
    • Other (33)
      • OOP (3)
      • 알고리즘 (2)
      • DB (12)
      • Git (1)
      • Swift (4)
    • Backup (65)

블로그 메뉴

    공지사항

    인기 글

    태그

    • RESTful
    • 크로스도메인
    • jOOQ
    • angular2
    • 404 error
    • CORS
    • angular 콜백
    • flex
    • Angular
    • Redis
    • angular callback
    • jquery invalid
    • INVALID
    • page not found
    • docker
    • angular4
    • mongodb
    • MYSQL
    • 패스트캠퍼스
    • Kafka

    최근 댓글

    최근 글

    티스토리

    hELLO · Designed By 정상우.
    설 연수

    하하호홓

    Dev-Ops/docker, k8s

    springboot-app을 docker image생성 및 실행.

    2020. 4. 21. 13:15

    백기선님 유튜브 : https://www.youtube.com/watch?v=agbpWm2Ho_I

    환경 : Mac, Maven

    메이븐 설치 확인
    maven --verion
    설치가 안된경우 설치
    brew install maven

    SpringBoot project 생성(https://start.spring.io/) 후 컨트롤러 생성

    @GetMapping("/")
    public String hello() {
    	return "Hello Spring Boot";
    }

    MAVEN 패키지 명령어 실행
    mvn package

    실행되는지 확인
    java -jar target/springboot-docker-demo-0.0.1-SNAPSHOT.jar

    도커 이미지 생성을 위한 Dockerfile생성(파일경로 : 프로젝트 최상위/Dockerfile)

    FROM openjdk:8-jre
    
    COPY target/springboot-docker-demo-*.jar app.jar
    
    ENTRYPOINT ["java", "-jar", "app.jar"]

    도커 이미지 빌드
    docker image build -t outsidery/springdockerdemo .

    도커 컨테이너 실행 후 잘 접속되는지 확인
    docker container run --rm -d -p 8080:8080 outsidery/springdockerdemo

    도커 컨테이너 중지(CONTAINER ID 조회 및 중지. --rm으로 실행했기때문에 종료시 자동삭제됨.)
    docker container ls
    docker container stop 549eb0b27322        <= (CONTAINER ID)

    도커 이미지 삭제(IMAGE ID 조회 및 삭제)
    docker image ls
    docker image rm 7a76319fbd44                <= (IMAGE ID)

    MAVEN 빌드와 도커 이미지생성을 같이 하기위해 pom.xml파일 plugin추가(https://github.com/fabric8io/docker-maven-plugin)

    <plugin>
    	<groupId>io.fabric8</groupId>
    	<artifactId>docker-maven-plugin</artifactId>
    	<version>0.33.0</version>
    	<configuration>
    		<images>
    			<image>
    				<name>outsiderys/springdockerdemo</name>
    				<build>
    					<dockerFileDir>${project.basedir}</dockerFileDir>
    				</build>
    			</image>
    		</images>
    	</configuration>
    </plugin>

    추가한 plugin을 통하여 도커이미지 생성
    mvn docker:build

    생성된 이미지 확인 및 실행
    docker image ls
    docker container run --rm -p 8080:8080 outsiderys/springdockerdemo

    MAVEN "mvn package" 실행 시 docker:build되도록 수정(pom.xml 파일 executions추가)

    <plugin>
    	<groupId>io.fabric8</groupId>
    	<artifactId>docker-maven-plugin</artifactId>
    	<version>0.33.0</version>
    	<configuration>
    		<images>
    			<image>
    				<name>outsiderys/springdockerdemo</name>
    				<build>
    					<dockerFileDir>${project.basedir}</dockerFileDir>
    				</build>
    			</image>
    		</images>
    	</configuration>
    	<executions>
    		<execution>
    			<id>docker-build</id>
    			<phase>package</phase>
    			<goals>
    				<goal>build</goal>
    			</goals>
    		</execution>
    	</executions>
    </plugin>

    MAVEN명령어 실행 후 동작되는지 확인(클린 후 패키지)
    mvn clean package
    docker image ls

    Maven Docker Hub에 push
    mvn docker:push

    push에 성공하면 Docker Hub에서 조회.
    https://hub.docker.com/u/outsiderys

    호스트에서 남아있는 이미지 삭제.
    docker image ls
    docker image rm IMAGE_ID

    실행(호스트에 이미지가 없다면 Docker Hub에서 이미지를 내려받은 후 실행된다) 
    docker container run --rm -d -p 8080:8080 outsiderys/springdockerdemo

    'Dev-Ops > docker, k8s' 카테고리의 다른 글

    쿠버네티스 롤링 리스타트  (0) 2020.05.09
    docker redis  (0) 2020.04.20
    docker명령어  (0) 2020.04.20
    docker 이미지 만들어보기  (0) 2020.04.20
      'Dev-Ops/docker, k8s' 카테고리의 다른 글
      • 쿠버네티스 롤링 리스타트
      • docker redis
      • docker명령어
      • docker 이미지 만들어보기
      설 연수
      설 연수

      티스토리툴바