백기선님 유튜브 : 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 |