반응형
Notice
Link
스택큐힙리스트
어떻게 도커 명령 줄에서 도커 레지스트리에서 특정 태그가 지정된 도커 이미지를 찾을 수 있을까요? 본문
반응형
도커 이미지에서 하나의 특정 태그를 찾으려고 합니다. 명령 줄에서 어떻게 할 수 있을까요? 모든 이미지를 다운로드한 다음에 불필요한 이미지를 제거하는 것을 피하고 싶습니다.
공식 우분투 릴리스인 https://registry.hub.docker.com/_/ubuntu/에서는 여러 개의 태그 (릴리스)가 있습니다. 그러나 명령 줄에서 검색하면 다음과 같습니다.
user@ubuntu:~$ docker search ubuntu | grep ^ubuntu
ubuntu 공식 우분투 베이스 이미지 354
ubuntu-upstart Upstart는 ...의 이벤트 기반 대체입니다. 7
ubuntufan/ping 0
ubuntu-debootstrap 0
도움말에서도 command line의 도움을 받으며, 어떻게 작동하는지 모르겠다? https://docs.docker.com/engine/reference/commandline/search/
로 검색 가능하다.
docker search
명령어에서 가능한가요?
만약 https://docs.docker.com/registry/spec/api/#tags
를 통해 Docker 레지스트리 API로 직접 검색한다면, 정보를 가져올 수 있습니다:
$ curl https://registry.hub.docker.com//v1/repositories/ubuntu/tags | python -mjson.tool
[
{
layer: ef83896b,
name: latest
},
.....
{
layer: 463ff6be,
name: raring
},
{
layer: 195eb90b,
name: saucy
},
{
layer: ef83896b,
name: trusty
}
]
답변 1
CoreOS을 사용할 때, JSON 데이터를 파싱하기 위해 jq
를 사용할 수 있습니다.
이전과 같이 library/centos
을 살펴보면:
$ curl -s -S 'https://registry.hub.docker.com/v2/repositories/library/centos/tags/' | jq '.results[][name]' |sort
6
6.7
centos5
centos5.11
centos6
centos6.6
centos6.7
centos7.0.1406
centos7.1.1503
latest
더 깔끔한 v2 API가 현재 사용 가능하며, 이를 예제에서 사용하고 있습니다. 간단한 스크립트인 docker_remote_tags
를 작성하겠습니다:
#!/usr/bin/bash
curl -s -S https://registry.hub.docker.com/v2/repositories/library/$@/tags/ | jq '.results[][name]' |sort
사용 방법:
$ ./docker_remote_tags library/centos
6
6.7
centos5
centos5.11
centos6
centos6.6
centos6.7
centos7.0.1406
centos7.1.1503
latest
참고:
jq
: https://stedolan.github.io/jq/ | apt-get install jq
jq
: https://stedolan.github.io/jq/ | apt-get install jq
답변 2
Docker 커맨드 라인에서 Docker 레지스트리에서 특정 태그를 가진 Docker 이미지를 찾는 방법은 다음과 같습니다. Docker는 컨테이너화된 애플리케이션을 관리하기 위한 오픈 소스 플랫폼으로, 다양한 이미지를 사용하여 애플리케이션을 실행할 수 있습니다. Docker 이미지는 컨테이너를 생성하는 데 사용되는 파일 및 설정을 포함하고 있습니다.Docker 레지스트리는 Docker 이미지를 저장하고 공유할 수 있는 중앙 저장소입니다. Docker 커맨드 라인을 사용하여 Docker 레지스트리에서 특정 태그를 가진 이미지를 찾는 방법을 알아보겠습니다.
먼저 Docker 커맨드 라인을 엽니다. 일반적으로 터미널을 실행하여 Docker를 사용할 수 있습니다. 다음으로 `docker search` 명령을 사용하여 Docker 레지스트리에서 이미지를 검색합니다. 아래의 명령어를 사용하면 Docker 레지스트리에서 특정 태그를 가진 이미지를 검색할 수 있습니다.
```
docker search 이미지_태그
```
위의 명령에서 `이미지_태그`는 원하는 Docker 이미지의 태그를 나타냅니다. 예를 들어, `ubuntu` 이미지의 `latest` 태그를 검색하려면 다음과 같이 명령어를 입력합니다.
```
docker search ubuntu:latest
```
해당 명령을 실행하면 Docker 레지스트리에서 `ubuntu` 이미지의 `latest` 태그를 가진 이미지를 찾을 수 있습니다. 검색 결과에는 이미지의 이름, 설명, 공식 이미지 여부 등이 포함됩니다.
검색 결과에서 원하는 이미지를 선택하고, 해당 이미지를 로컬에 가져오기 위해 `docker pull` 명령을 사용할 수 있습니다. 아래의 명령어를 사용하면 Docker 이미지를 로컬에 다운로드할 수 있습니다.
```
docker pull 이미지_이름:태그
```
위의 명령에서 `이미지_이름`은 선택한 이미지의 이름을 나타내고, `태그`는 이미지의 버전을 나타냅니다. 이를 활용하여 Docker 이미지를 로컬에 다운로드할 수 있습니다.
따라서 Docker 커맨드 라인에서 Docker 레지스트리에서 특정 태그를 가진 이미지를 검색하는 방법은 `docker search` 명령을 사용하여 이미지를 검색하고, `docker pull` 명령을 사용하여 이미지를 로컬에 다운로드하는 것입니다.
이와 같이 Docker 커맨드 라인을 사용하여 Docker 레지스트리에서 원하는 태그를 가진 이미지를 찾고, 다운로드할 수 있습니다. Docker를 효과적으로 활용하여 애플리케이션을 관리하고 배포하는 데 도움이 되길 바랍니다.
반응형
Comments