[Docker] DockerHub에 이미지 배포하기 (미완성)
🚨 시작하기 전에!! 완벽하지 않은 게시글입니다.
개인 기록용이니 따라하실 분들은 다른 글을 참고하세요🥲
1. 이미지 배포
1) Dockerfile
FROM openjdk:11
ARG JAR_FILE=build/libs/server-0.0.1-SNAPSHOT.jar
COPY ${JAR_FILE} app.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "/app.jar"]
2) gradle 빌드
$ ./gradlew build -x test //🌟 -x test: 테스트 실행 X
이런식으로 생성된다.
3) Docker Hub
Docker Hub
https://hub.docker.com/
레포지토리 생성
- 회원가입 및 로그인
- Repositories > Create Repository 로 들어가서 도커 레포지토리를 생성
- Repository 이름과 Public으로 설정하고 Create 를 클릭
Docker Build -> 이미지 생성
// gradle
$ docker build --build-arg DEPENDENCY=build/dependency -t [도커허브 ID]/[Repository 이름] --platform linux/amd64 .
// 나는 아래와 같이 입력했다 (예시)
// $ docker build --build-arg DEPENDENCY=build/dependency -t ln8847/naem --platform linux/amd64 .
// maven
$ docker build -t [도커허브 ID]/[Repository 이름] --platform linux/amd64 .
만약 이런 오류가 난다면??
.dockerignore
.dockerignore
파일에 volume
디렉터리를 추가한다.
### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
### volume ###
**/docker-data
이제 에러가 발생하지 않는다!
Docker Image Push
위에서 생성한 docker image 파일을 Docker Hub에 push를 해준다.
$ docker login
$ docker push ln8847/naem
푸시 전
푸시 후
2. 허브에서 이미지 pull
AWS EC2 인스턴스에 접속한 상태로 진행한다.
# 도커 설치
sudo yum install docker // 이거는 이미 함....
# 도커 실행
sudo systemctl start docker // 이것도 위에서 함....
# 도커 허브에 존재하는 이미지 파일 pull
$ sudo docker pull ln8847/naem
# 도커 이미지를 통해 스프링 부트 애플리케이션 배포
$ sudo docker run --name naem-application -p 8080:8080 ln8847/naem
Ref
- https://www.lainyzine.com/ko/article/docker-rm-removing-docker-containers/: docker rm 사용법: Docker 컨테이너를 삭제하는 방법
- https://jojoldu.tistory.com/587
💛 개인 공부 기록용 블로그입니다. 👻