본문 바로가기

Docker

[Docker] 도커 이미지 docker Hub에 push/pull 하기

 

사전 준비: 도커 이미지 만들기

https://k-sky.tistory.com/753

 

[Docker] 스프링부트 프로젝트 도커 이미지(image) 만들고 실행하기

1) 빌드 인텔리제이 오른쪽 코끼리(gradle) 아이콘 클릭 -> 프로젝트명-Tasks-build-bootJar 클릭하면 빌드 됨! 빌드 할 때 에러 발생한 내용 ▼ 더보기 명령어로 빌드 했는데 아래와 같이 에러 빌드가 안

k-sky.tistory.com

 

 

1. 도커허브에 push 하기

1) 도커 로그인

  • 프로젝트 위치에서 도커 로그인 
docker login

 

첫 로그인

재로그인

 

 

2) 도커 이미지에 도커 허브의 리포지토리와 태그 추가

docker tag {로컬에 저장된 이미지명:태그} {도커허브ID}/{이미지명}:{태그}

 

 

 

3) 도커 허브에 이미지 push

docker push {도커허브ID}/{이미지명}:{태그}

 

 

4) 확인하기

도커허브 접속

https://hub.docker.com/

 

Docker Hub Container Image Library | App Containerization

Build and Ship any Application Anywhere Docker Hub is the world's easiest way to create, manage, and deliver your team's container applications. Create your account Signing up for Docker is fast and free. Continue with GoogleContinue with GitHubContinue wi

hub.docker.com

 

5) Repositories 에서 내가 push한 이미지 확인

 

 

2. 도커허브에서 pull 하기

1) pull

docker pull {도커허브ID}/{이미지명}:{태그}

 

 

2) 실행해보기

docker run --name {} -d -p {호스트포트}:{컨테이너포트} {도커허브ID}/{이미지명}:{태그}

 

 

 

🤯 에러

더보기

WARNING: The requested image's platform (linux/arm64/v8) does not match the detected host platform (linux/amd64/v4) and no specific platform was requested
exec /usr/bin/java: exec format error 

 

 

호스트 시스템 아키텍처와 이미지의 아키텍처가 맞지 않을 때 발생하는 에러.

이미지의 플랫폼이 호스트 시스템의 플랫폼과 다를 때 나타나며, 에러는 실행하려는 바이너리의 형식이 호스트 시스템에서 실행할 수 없는 형식일 때 발생.

로컬 테스트에서는 push/pull 해서 run 까지 되었는데 vm 서버에서 pull 받아서 run 하면 발생하는 에러였음

맥북M2 에서 이미지 빌드할 때 생성된 빌드 플랫폼이 vm 서버와 호환되지 않아서 발생된 에러

아래 명령어를 이용해서 플랫폼을 vm 서버 빌드 플랫폼 linux/amd64 로 설정하여 이미지를 빌드 하면 정상 실행됨

 

docker buildx build --platform linux/amd64 -t {도커허브ID}/{이미지명}:{태그} .

 

 

push

 

pull

 

run