2016-06-01 2 views
2

dockerhub에 3 개의 이미지가있는 사용자 저장소가 있다고 가정합니다. 이미지는 A, BC으로 태그가 지정됩니다. 여기 C 내 최신 태그입니다.dockerhub에서 최신 이미지 가져 오기

이제 이러한 태그를 알 수 없습니다. docker pull user/image을 수행하면 Tag latest not found in repository docker.io/user/image이라는 오류 메시지가 나타납니다. 어떻게하면 최신 태그 (이 경우 C)로 이미지를 가져올 수 있습니까?

답변

4

예, 전적으로 동의합니다. 최신 태그가 혼란 스럽습니다. 최신 태그가 실제로 이미지의 최신 버전을 가리키는 것은 아닙니다. 당신이 당신의 푸시 작업을하기 전에 이미지에 태그를하지 않는 경우

1) 태그 이름을 지정하지 않고 이미지를 당길 때, 도커 이미지가 '최신'

이 태그 끌어하려고합니다) : 이제 살펴 보자 Docker는 레지스트리에 '최신'태그를 자동으로 지정합니다.

3) 이미지에 태그를 지정하고 해당 작업을하는 것처럼 들리면 Docker는 'latest'로 태그하지 않습니다. 그런 다음 '최신'태그를 수동으로 적용해야합니다.

'최신'태그는 '기본'태그 여야하며 태그 이름이 지정되지 않은 경우 레지스트리에서 가져온 기본 이미지로 인식되어야합니다. pull 명령에서.

curl -s -S "https://registry.hub.docker.com/v2/repositories/repo/image/tags/" | jq '."results"[]["name"]' 나에게 모든 태그의 목록을 제공합니다 : 나는 내 질문에 대한 답을 찾은 것 같아 How to create named and latest tag in Docker?

0

:

여러 개의 태그를 적용하는 방법에 대한 자세한 내용은이 대답을 참조하십시오 dockerhub 저장소. 그 다음에 나는 이것을 바로 sed -n 1p으로 파이프하여 최신 커밋을 얻을 수 있습니다.

2

'최신'태그를 생각하는 한 가지 방법은 git의 'master'태그와 같습니다. 사실, 나는 그들이 그것을 부르면 좋겠다!

브랜치를 지정하지 않고 git repo를 복제하면 최근에 다른 브랜치에 업데이트가 푸시 된 경우에도 'master'브랜치가 생성됩니다.

당신이 도커 이미지를 당기면 다른 이미지가 큰 차이로

+1

:-) 최근에 다른 태그에 밀려되었을 수에도 불구하고, '최신'태그를 얻을 수 있습니다하는 자식의 repo에없이 밀어 태그를 자동으로 지정하면 마스터의 HEAD가됩니다. – tworabbits

+1

하지만 git와는 달리, master에서 다시 "pull"하면 Docker에서 "latest"를 가져오고 이미 "latest"가 있으면 아무 것도 바뀌지 않고 마지막으로 꺼낸 이후에 변경 사항을 받게됩니다. – john