티스토리 뷰
728x90
반응형
docker push 명령어는 Docker 이미지를 로컬에서 원격 레지스트리(예: Docker Hub, AWS ECR, GCR, etc.)로 업로드하는 데 사용됩니다. 이미지를 업로드하면 다른 사용자나 시스템이 이를 다운로드(docker pull)하여 사용할 수 있습니다.
1️⃣ docker push의 기본 구조
docker push [레지스트리 주소]/[이미지 이름]:[태그]
구성 요소 설명
- [레지스트리 주소]:
- 이미지를 업로드할 레지스트리 주소. 기본값은 Docker Hub (docker.io)입니다.
- 예: index.docker.io (Docker Hub), 123456789012.dkr.ecr.us-east-1.amazonaws.com (AWS ECR).
- [이미지 이름]:
- 업로드하려는 Docker 이미지의 이름.
- 예: myapp, nginx, username/myapp.
- [태그]:
- 이미지 버전(태그)을 지정. 기본값은 latest입니다.
- 예: v1.0, latest, dev.
2️⃣ 사용 방법
1. Docker 이미지 태그 추가
docker push를 실행하기 전에 이미지를 원격 레지스트리에 업로드할 수 있도록 올바른 태그를 지정해야 합니다.
태그는 docker tag 명령어를 사용해 지정합니다.
docker tag [이미지 ID] [레지스트리 주소]/[이미지 이름]:[태그]
예제:
docker tag myapp:latest username/myapp:v1.0
2. Docker 레지스트리에 로그인
레지스트리에 이미지를 업로드하려면 먼저 로그인해야 합니다.
docker login [레지스트리 주소]
예제 (Docker Hub):
docker login
AWS ECR의 경우:
aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin [레지스트리 주소]
3. 이미지 업로드
태그를 지정한 이미지를 원격 레지스트리에 업로드합니다.
docker push [레지스트리 주소]/[이미지 이름]:[태그]
예제:
docker push username/myapp:v1.0
3️⃣ docker push 작동 방식
- 이미지 계층 확인:
- docker push는 업로드할 이미지의 계층(레이어)을 확인합니다.
- 이미 원격 레지스트리에 업로드된 계층은 건너뜁니다.
- 업로드:
- 새로운 계층만 원격 레지스트리에 업로드됩니다.
- 완료:
- 이미지가 성공적으로 업로드되면 레지스트리에 해당 이미지의 URL이 저장됩니다.
4️⃣ 자주 발생하는 문제 및 해결 방법
문제 1: 권한 부족
- 오류: denied: requested access to the resource is denied
- 원인: 로그인하지 않았거나 레지스트리의 권한이 없습니다.
- 해결: 올바른 계정으로 로그인하거나 권한을 확인합니다.
docker login
문제 2: 태그가 없거나 잘못됨
- 오류: repository does not exist or may require 'docker login'
- 원인: 태그가 누락되었거나 잘못된 이름을 사용했습니다.
- 해결: 이미지를 태그하고 다시 시도합니다.
docker tag myapp:latest username/myapp:v1.0
문제 3: 네트워크 연결 문제
- 오류: unauthorized: authentication required 또는 업로드 중 실패.
- 원인: 네트워크 문제로 레지스트리에 연결할 수 없습니다.
- 해결: 네트워크 상태를 확인하고 다시 시도합니다.
5️⃣ 실전 예제
1. Docker Hub에 이미지 업로드
- 이미지 태그 지정:
- docker tag myapp:latest username/myapp:v1.0
- Docker Hub 로그인:
- docker login
- 이미지 업로드:
- docker push username/myapp:v1.0
2. AWS ECR에 이미지 업로드
- ECR에 로그인:
- aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin 123456789012.dkr.ecr.us-east-1.amazonaws.com
- 이미지 태그 지정:
- docker tag myapp:latest 123456789012.dkr.ecr.us-east-1.amazonaws.com/myapp:v1.0
- 이미지 업로드:
- docker push 123456789012.dkr.ecr.us-east-1.amazonaws.com/myapp:v1.0
728x90
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- java 키워드 정리
- nl2br
- In App Purchase
- java.sql
- 람다식(lambda expression)
- 표현 언어(expression language)
- await
- system.io
- java-개발 환경 설정하기
- 스프링 프레임워크(spring framework)
- jstl(java standard tag library)-core
- REST API
- MainActor
- 제품 등록
- System.Diagnostics
- 특정 문자를 기준으로 자르기
- 진수 변환
- docker
- 문자 자르기
- error-java
- jsp 오픈 소스
- 스프링 시큐리티(spring security)-http basic 인증
- jstl(java standard tag library)
- .submit()
- 스프링 시큐리티(spring security)
- 스프링 프레임워크(spring framewordk)
- 메이븐(maven)
- java web-mvc
- React
- 인텔리제이(intellij)
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함