Docker 이미지를 Amazon ECS 리포지토리로 푸시
저는 AWS를 처음 사용합니다. AWS ECS 컨테이너 인스턴스에 프라이빗 Docker 리포지토리를 설정하고 싶습니다. 라는 저장소를 만들었습니다 name
. AWS에서 표시하는 예제 푸시 명령이 작동합니다.
aws ecr get-login --region us-west-2
docker build -t name .
docker tag name:latest ############.dkr.ecr.us-west-2.amazonaws.com/name:latest
docker push ############.dkr.ecr.us-west-2.amazonaws.com/name:latest
그러나이 명령 name
을 사용하여 라는 이미지를 빌드하고 푸시했으며 foo
. 그래서 명령을 다음과 같이 변경했습니다.
docker build -t foo .
docker tag foo ###########.dkr.ecr.us-west-2.amazonaws.com/name/foo
docker push ###########.dkr.ecr.us-west-2.amazonaws.com/name/foo
이것은 작동하지만 작동하지 않습니다. 일정 기간 재시도 후 오류가 발생합니다.
The push refers to a repository [###########.dkr.ecr.us-west-2.amazonaws.com/name/foo]
8cc63cf4528f: Retrying in 1 second
...
name unknown: The repository with name 'name/foo' does not exist in the registry with id '############'
AWS는 실제로 푸시하려는 모든 이미지에 대해 전용 리포지토리를 필요로합니까?
EC2 컨테이너 레지스트리는 필요 이미지 저장소를 레지스트리에 게시 할 각 이미지에 "이름"또는 "네임 스페이스 / 이름"에 대한 설정을 할 수 있습니다.
:tags
하지만 각 리포지토리에 원하는 것을 게시 할 수 있습니다 (기본 제한은 100 개 태그 임).
리포지토리-> 이미지 이름 매핑을 구체적으로 설명하는 AWS 설명서의 어느 곳도 본 적이 없지만 ECR 사용 설명서의 리포지토리 생성-섹션 6d에 암시되어 있습니다.
도커 이미지 스펙 (A)의 그것의 정의에 포함 저장소
저장소
공통 접두사 (앞의 이름 구성 요소
:
)로 그룹화 된 태그 모음입니다 . 예를 들어 이름으로 태그가 지정된 이미지my-app:3.1.4
에서 my-app은 이름의 Repository 구성 요소입니다. 리포지토리 이름은 슬래시로 구분 된 이름 구성 요소로 구성되며 선택적으로 DNS 호스트 이름이 접두사로 붙습니다. 호스트 이름은 표준 DNS 규칙을 준수해야하지만_
문자를 포함 할 수 없습니다 . 호스트 이름이있는 경우 선택적으로 뒤에 형식의 포트 번호가 올 수:8080
있습니다. 이름 구성 요소에는 소문자, 숫자 및 구분 기호가 포함될 수 있습니다. 구분 기호는 마침표, 하나 또는 두 개의 밑줄 또는 하나 이상의 대시로 정의됩니다. 이름 구성 요소는 구분 기호로 시작하거나 끝날 수 없습니다.
각 이미지 이름에 대한 저장소를 만들어야하지만 이미지 이름은 "mycompanyname / helloworld"형식 일 수 있습니다. 그래서 당신 mycompanyname/app1
은 mycompanyname/app2
, 등 을 만듭니다 .
aws ecr create-repository --repository-name mycompanyname/helloworld
aws ecr create-repository --repository-name mycompanyname/app1
aws ecr create-repository --repository-name mycompanyname/app2
docker tag helloworld:latest xxxxxxxx.dkr.ecr.us-west-2.amazonaws.com/mycompanyname/helloworld:latest
docker push xxxxxxxx.dkr.ecr.us-west-2.amazonaws.com/mycompanyname/helloworld:latest
docker tag app1:latest xxxxxxxx.dkr.ecr.us-west-2.amazonaws.com/mycompanyname/app1:latest
docker push xxxxxxxx.dkr.ecr.us-west-2.amazonaws.com/mycompanyname/app1:latest
이미지별로 저장소를 만들 필요가 없으며 이름을 재구성하기 만하면됩니다.
docker build -t foo .
docker tag foo ####.dkr.ecr.us-west-2.amazonaws.com/name:foo_v0.23.1
docker push ####.dkr.ecr.us-west-2.amazonaws.com/name:foo_v0.23.1
참고 URL : https://stackoverflow.com/questions/37540921/push-docker-image-to-amazon-ecs-repository
'UFO ET IT' 카테고리의 다른 글
DataFrame Index에 기능 적용 (0) | 2020.12.08 |
---|---|
특정 커밋까지 힘내 풀 (0) | 2020.12.08 |
두 개의 XML 문서를 어떻게 비교 하시겠습니까? (0) | 2020.12.08 |
Django 모델 필드의 max_length를 프로그래밍 방식으로 어떻게 얻을 수 있습니까? (0) | 2020.12.08 |
tesseract가 찾는 문자 제한 (0) | 2020.12.07 |