도커 이미지의 sha256 코드는 어디서 찾을 수 있습니까?
SHA256 코드를 이용해 센토스, 톰캣의 이미지를 뽑아보고 싶습니다.
docker pull myimage@sha256:0ecb2ad60
하지만 어디에도 사용할 sha256 코드를 찾을 수가 없습니다.
도커허브 저장소에서 sha256-code의 힌트를 확인했지만 찾을 수 없었습니다.그들의 태그로 이미지를 다운받았습니다.
docker pull tomcat:7-jre8
했습니다.docker inspect
메타데이터에 sha256 코드가 있지만 없는지 확인합니다(adding 이미지의 sha256 코드가 sha256 코드를 변경할 수 있음).
이미지의 sha256 코드를 제가 직접 계산해서 사용해야 하나요?
최신답변
OhJeez가 댓글로 제안한 편집.
docker inspect --format='{{index .RepoDigests 0}}' $IMAGE
원답
이 제품을 사용해서 사용할 수도 있을 것 같습니다.
docker inspect --format='{{.RepoDigests}}' $IMAGE
도커 1.9에서만 작동하며 이미지가 다이제스트에 의해 원래 당겨진 경우.자세한 내용은 도커 문제 추적기에 나와 있습니다.
당신은 그것을 받을 수 있습니다.docker images --digests
REPOSITORY TAG DIGEST IMAGE ID CREATED SIZE
docker/ucp-agent 2.1.0 sha256:a428de44a9059f31a59237a5881c2d2cffa93757d99026156e4ea544577ab7f3 583407a61900 3 weeks ago 22.3 MB
가장 간단하고 간결한 방법은 다음과 같습니다.
docker images --no-trunc --quiet $IMAGE
됩니다.sha256:...
끈 외에는 아무것도 없습니다.
예:
$ docker images --no-trunc --quiet debian:stretch-slim
sha256:220611111e8c9bbe242e9dc1367c0fa89eef83f26203ee3f7c3764046e02b248
편집:
참고: 로컬 이미지에만 적용됩니다.넌 할 수 있다.docker pull $IMAGE
먼저, 필요한 경우.
방금 봤어요.
영상을 풀링하면 출력 하단에 sha256 코드가 표시됩니다(Digest: sha..).
docker pull tomcat:7-jre8
7-jre8: Pulling from library/tomcat
902b87aaaec9: Already exists
9a61b6b1315e: Already exists
...
4dcef5c50d60: Already exists
Digest: sha256:c34ce3c1fcc0c7431e1392cc3abd0dfe2192ffea1898d5250f199d3ac8d8720f
Status: Image is up to date for tomcat:7-jre8
이샤코드
sha256:c34ce3c1 fcc0c7431e1392cc3 abd0dfe2192ffea 1898d5250f199d3ac8d8720f
이미지를 당기는 데 사용할 수 있습니다.
도커풀톰캣@sha256:c34ce3c1 fcc0c7431e1392cc3 abd0dfe2192ffea 1898d5250f199d3ac8d8720f
이렇게 하면 이미지가 변경되지 않고 안전하게 제작에 사용할 수 있습니다.
위의 방법들은 경우에 따라 효과가 없다는 것을 알게 되었습니다.다음 중 하나입니다.
- 동일한 해시를 가진 여러 이미지를 잘 다루지 않습니다(의 경우).RepoDigests 제안 - 특정 레지스트리 경로를 사용하려는 경우)
- 이미지를 레지스트리로 푸시할 때 잘 작동하지 않습니다(의 경우).레지스트리의 해시가 아닌 로컬 해시인 ID).
아래 방법은 섬세하지만, 푸시된 특정 컨테이너에 대한 특정 전체 '이름'과 해시를 추출하는 데 효과적입니다.
시나리오는 이렇습니다. 이미지는 동일한 레포에 있는 두 개의 다른 프로젝트에 별도로 업로드되므로 RepoDigests를 쿼리하면 두 개의 결과가 반환됩니다.
$ docker inspect --format='{{.RepoDigests}}' gcr.io/alpha/homeapp:latest
[gcr.io/alpha/homeapp@sha256:ce7395d681afeb6afd68e73a8044e4a965ede52cd0799de7f97198cca6ece7ed gcr.io/beta/homeapp@sha256:ce7395d681afeb6afd68e73a8044e4a965ede52cd0799de7f97198cca6ece7ed]
알파 결과를 사용하고 싶은데 어떤 지수가 될지 예측이 안 됩니다.그래서 저는 텍스트 출력을 조작하여 괄호를 제거하고 각 항목을 별도의 줄로 연결해야 합니다.거기서 나는 쉽게 결과를 얻을 수 있습니다.
$ docker inspect --format='{{.RepoDigests}}' gcr.io/alpha/homeapp:latest | sed 's:^.\(.*\).$:\1:' | tr " " "\n" | grep alpha
gcr.io/alpha/homeapp@sha256:ce7395d681afeb6afd68e73a8044e4a965ede52cd0799de7f97198cca6ece7ed
기존 할 수 .--digests
중 docker images
당신이 가지고 있는 모든 이미지에 대한 요약 목록을 얻을 수 있습니다.
docker images --digests
Grep을 추가하여 드릴다운할 수 있습니다.
docker images --digests | grep tomcat
해당 저장소에서 이미지를 꺼낼 때 찾을 수 있습니다.아래 명령에서는 Docker 이미지를 풀링할 때 Digest: sha256에 대해 언급합니다.
09:33 AM##~::>docker --version
Docker version 19.03.4, build 9013bf5
소화: sha256:6e9f67fa63b0323e9a1e587fd71c561ba48a034504fb804fd26fd8800039835d
09:28 AM##~::>docker pull ubuntu
Using default tag: latest
latest: Pulling from library/ubuntu
7ddbc47eeb70: Pull complete
c1bbdc448b72: Pull complete
8c3b70e39044: Pull complete
45d437916d57: Pull complete
**Digest: sha256:6e9f67fa63b0323e9a1e587fd71c561ba48a034504fb804fd26fd8800039835d**
Status: Downloaded newer image for ubuntu:latest
docker.io/library/ubuntu:latest
일단 이미지가 다운로드되면, 우리는 다음을 할 수 있습니다.
"ubuntu@sha256:6e9f67fa63b0323e9a1e587fd71c561ba48a034504fb804fd26fd8800039835d"
09:36 AM##~::>docker inspect ubuntu | grep -i sha256
"Id": "sha256:775349758637aff77bf85e2ff0597e86e3e859183ef0baba8b3e8fc8d3cba51c",
**"ubuntu@sha256:6e9f67fa63b0323e9a1e587fd71c561ba48a034504fb804fd26fd8800039835d"**
"Image": "sha256:f0caea6f785de71fe8c8b1b276a7094151df6058aa3f22d2902fe6b51f1a7a8f",
"Image": "sha256:f0caea6f785de71fe8c8b1b276a7094151df6058aa3f22d2902fe6b51f1a7a8f",
"sha256:cc967c529ced563b7746b663d98248bc571afdb3c012019d7f54d6c092793b8b",
"sha256:2c6ac8e5063e35e91ab79dfb7330c6154b82f3a7e4724fb1b4475c0a95dfdd33",
"sha256:6c01b5a53aac53c66f02ea711295c7586061cbe083b110d54dafbeb6cf7636bf",
"sha256:e0b3afb09dc386786d49d6443bdfb20bc74d77dcf68e152db7e5bb36b1cca638"
이 필드는 이전에 사용되지 않았던 Docker Hub API에서 볼 수 있었던 Id 필드였어야 합니다.
GET /v1/repositories/foo/bar/images HTTP/1.1
Host: index.docker.io
Accept: application/json
Parameters:
namespace – the namespace for the repo
repo_name – the name for the repo
반응 예제:
HTTP/1.1 200
Vary: Accept
Content-Type: application/json
[{"id": "9e89cc6f0bc3c38722009fe6857087b486531f9a779a0c17e3ed29dae8f12c4f",
"checksum": "b486531f9a779a0c17e3ed29dae8f12c4f9e89cc6f0bc3c38722009fe6857087"},
{"id": "ertwetewtwe38722009fe6857087b486531f9a779a0c1dfddgfgsdgdsgds",
"checksum": "34t23f23fc17e3ed29dae8f12c4f9e89cc6f0bsdfgfsdgdsgdsgerwgew"}]
그러나: 새로운 도커 배포판에서는 이러한 방식으로 작동하지 않습니다.
이슈 628 참조: "태그 이름으로 이미지 ID 가져오기"
/v1/
e/repositories/<repo>/tags
이미지 ID를 태그 핸들과 함께 나열하는 데 사용됩니다.
/v2/
오직 손잡이만 주는 것 같습니다.로컬에서 찾은 ID와 비교할 수 있는 ID를 얻는 것이 유용할 것입니다. 수 에 없습니다.
v1Compat
매니페스트의 섹션(내가 원하는 정보에 비해 오버킬)
현재(2015년 중반) 답변은 다음과 같습니다.
V1 API의 이 속성은 백엔드에 이미지를 저장하는 방식에 비해 계산 비용이 매우 많이 들었습니다.2차 조회를 피하기 위해 태그 이름만 열거됩니다.
또한, V2 API는 Image ID를 다루지 않으며, 레이어를 식별하기 위해 다이제스트를 사용하며, 레이어의 속성으로 계산할 수 있으며 독립적으로 검증 가능합니다.
@zelphir에 의해 언급된 것처럼, 다이제스트를 사용하는 것은 로컬 전용 이미지를 위해 존재하지 않기 때문에 좋은 방법이 아닙니다.이미지 ID sha가 태그/풀/푸시 등에서 가장 정확하고 일관성이 있다고 생각합니다.
docker inspect --format='{{index .Id}}' $IMAGE
효과가 있습니다.
플랫폼별 SHA가 아닌 매니페스트 SHA를 얻기 위해 선호하는 방법은 다음과 같습니다.
docker buildx imagetools inspect $IMAGE --format "{{json .Manifest}}" | jq -r .digest
예.
docker buildx imagetools inspect busybox --format "{{json .Manifest}}" | jq -r .digest
sha256:9e2bbca079387d7965c3a9cee6d0c53f4f4e63ff7637877a83c4c05f2a666112
SHA 를합니다를 합니다.jq
필터:
docker buildx imagetools inspect $IMAGE --format "{{json .Manifest}}"
의 좋은 점.buildx imagetools
이미지를 로컬로 풀링할 필요가 없으므로 도커 허브(또는 다른 레지스트리에서 가리키는 이미지)에 대한 정보를 찾는 데 사용할 수 있습니다.
저스트 이슈docker pull tomcat:7-jre8
당신이 원하는 것을 다시 얻을 수 있을 겁니다
언급URL : https://stackoverflow.com/questions/32046334/where-can-i-find-the-sha256-code-of-a-docker-image
'it-source' 카테고리의 다른 글
파워셸에서 내장된 별칭을 제거하거나 교체하려면 어떻게 해야 합니까? (0) | 2023.10.08 |
---|---|
"표 1 왼쪽 조인 표 2"와 "표 2 오른쪽 조인 표 1"은 서로 교환할 수 있습니까? (0) | 2023.10.08 |
문자열을 숫자로 변환하고 하나를 추가합니다. (0) | 2023.10.08 |
AngularJS - ng여러 개체 유형으로 반복 (0) | 2023.10.08 |
시간 충돌 없이 예약 추가 (0) | 2023.10.08 |