docker hub에 이미지 push, pull 하기 (+buildx)
1. dockerfile 작성 ex) spring
gradlew build로 jar 파일 패키징
FROM openjdk:17-jdk
WORKDIR /app
ARG JAR_FILE=build/libs/*.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java","-jar","app.jar"]
2. 이미지 빌드
위 dockerfile이 있는 곳으로 가서 아래 명령어 실행
docker build -t username/repository:tag .
뒤에 - -push 하면 바로 hub에 올라감
repository로 이미지를 구분하고 tag로는 버전을 관리한다, tag 없으면 latest로 올라감
네이밍은 . _ - 와 소문자를 사용
이미 빌드가 되있거나 태그를 변경하려면 아래 명령어로 태깅
docker tag 이미지ID username/repository:tag
or
docker tag username/repository:tag username/repository:tag
2-1. 멀티 아키텍처 image 만들기 buildx
상황 ) 본인 환경이 맥 m1 arm 아키텍처에서 생성한 이미지를 amd 아키텍처에서 사용하면 오류가 발생함
- Buildx 인스턴스 생성
- docker buildx create --name mybuilder --use
- 빌더 인스턴스 시작: 생성한 빌더 인스턴스를 시작합니다.
- docker buildx inspect --bootstrap
- Buildx를 사용하여 이미지 빌드 및 푸시: 다음 명령어를 사용하여 여러 아키텍처를 대상으로 하는 이미지를 빌드하고 Docker Hub에 푸시합니다. 이 예제에서는 **linux/amd64*와 linux/arm64 아키텍처를 대상으로 합니다.
- docker buildx build --platform linux/amd64,linux/arm64 -t [Docker Hub 사용자명]/[이미지 이름]:[태그] . --push
3. docker login
docker login
4. 허브에 push
docker push username/repository:tag
docker hub에서 이미지 pull 하기
1. 이미지 검색
docker search 이미지명
2. pull
docker pull 이미지명:tag
tag 안 붙히면 latest이 태그인 이미지를 가져옴 (최신 태그가 아닌 latest 란 태그를 가진 이미지)
'인프라 > 도커' 카테고리의 다른 글
데이터 수집 후 도커로 공유하기 mysql, redis (0) | 2025.03.04 |
---|---|
도커 자주 쓰이는 커맨드 정리 (0) | 2024.03.15 |