docker scout stream 명령어를 사용하여 스트림 관리 방법

DockerBeginner
지금 연습하기

소개

이 랩에서는 docker scout stream 명령어를 사용하여 스트림을 관리하는 방법을 배우게 됩니다. 스트림은 본질적으로 이미지의 모음이며, 스트림과 상호 작용하는 방법을 이해하는 것은 Docker 이미지를 효과적으로 구성하고 관리하는 데 매우 중요합니다.

먼저 기존 스트림을 나열하여 어떤 이미지 모음을 사용할 수 있는지 확인하는 방법을 배웁니다. 그런 다음 특정 스트림에 포함된 특정 이미지를 나열하는 방법을 살펴봅니다. 마지막으로, 특정 플랫폼에 대한 이미지를 스트림에 기록하는 방법을 배우게 됩니다. 이를 통해 이미지를 해당 스트림 및 플랫폼과 연결할 수 있습니다.

기존 스트림 나열

이 단계에서는 Docker 에서 기존 스트림을 나열하는 방법을 배우게 됩니다. 스트림은 본질적으로 이미지의 저장소 또는 모음입니다. 스트림을 나열하면 어떤 이미지 모음을 사용할 수 있는지 확인할 수 있습니다.

먼저 docker images 명령어를 사용하여 사용 가능한 모든 이미지를 나열해 보겠습니다. 이 명령어는 현재 시스템에 다운로드된 이미지를 보여줍니다.

docker images

특정 이미지는 풀링된 내용에 따라 다르겠지만, 다음과 유사한 출력을 볼 수 있습니다.

REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
ubuntu        latest    d621e9f15c2f   2 weeks ago    72.8MB
hello-world   latest    d2c94e258dcb   2 months ago   13.3kB

출력의 REPOSITORY 열은 스트림 이름을 나타냅니다. TAG 열은 해당 스트림 내의 특정 버전을 나타냅니다.

고유한 스트림 이름 (저장소) 만 나열하려면 docker images의 출력을 처리할 수 있습니다. awksort와 같은 명령줄 도구를 사용하여 이를 수행할 수 있습니다.

docker images | awk '{print $1}' | sort -u

이 명령어를 자세히 살펴보겠습니다.

  • docker images: 이 명령어는 모든 이미지를 나열합니다.
  • |: 파이프 (pipe) 로, 왼쪽 명령의 출력을 오른쪽 명령의 입력으로 보냅니다.
  • awk '{print $1}': awk는 강력한 텍스트 처리 도구입니다. {print $1}awk에게 입력의 각 줄의 첫 번째 열을 인쇄하도록 지시합니다. docker images 출력에서 첫 번째 열은 REPOSITORY입니다.
  • |: awk의 출력을 sort로 보내는 또 다른 파이프입니다.
  • sort -u: sort는 입력 줄을 알파벳순으로 정렬합니다. -u는 unique(고유) 를 의미하며, 중복된 줄을 제거합니다. 이렇게 하면 스트림인 고유한 저장소 이름 목록이 제공됩니다.

출력은 다음과 같이 고유한 저장소 이름 목록이 됩니다.

REPOSITORY
hello-world
ubuntu

이 명령어는 시스템에 이미지가 다운로드된 기존 스트림 (저장소) 을 효과적으로 나열합니다.

특정 스트림의 이미지 나열

이전 단계에서는 모든 기존 스트림 (저장소) 을 나열하는 방법을 배웠습니다. 이제 특정 스트림에 속하는 이미지를 나열하는 방법을 배우게 됩니다. 이는 특정 이미지의 다양한 버전 (태그) 을 확인하려는 경우에 유용합니다.

특정 스트림의 이미지를 나열하려면 docker images 명령어를 사용하고 그 뒤에 스트림 이름을 입력하면 됩니다. 예를 들어, ubuntu 스트림의 모든 이미지를 나열하려면 다음을 사용합니다.

docker images ubuntu

이 명령어를 실행하기 전에 ubuntu 이미지가 시스템에서 사용 가능한지 확인해 보겠습니다. 그렇지 않은 경우 docker pull 명령어를 사용하여 풀링할 수 있습니다.

docker pull ubuntu

이미지가 다운로드되고 있음을 나타내는 출력을 볼 수 있습니다.

Using default tag: latest
latest: Pulling from library/ubuntu
...
Status: Downloaded newer image for ubuntu:latest
docker.io/library/ubuntu:latest

이제 ubuntu 이미지를 사용할 수 있으므로 ubuntu 스트림의 이미지를 나열할 수 있습니다.

docker images ubuntu

출력은 ubuntu 스트림에 속하는 이미지를 표시합니다. latest 태그만 풀링한 경우 다음과 유사한 내용을 볼 수 있습니다.

REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
ubuntu       latest    d621e9f15c2f   2 weeks ago    72.8MB

다른 ubuntu 태그를 다운로드한 경우에도 여기에 나열됩니다.

이전 단계에서 docker images의 출력에서 확인한 다른 스트림 이름으로 ubuntu를 대체하여 해당 특정 스트림의 이미지를 나열할 수 있습니다. 예를 들어, hello-world 스트림의 이미지를 나열하려면 다음을 사용합니다.

docker images hello-world

이 명령어는 hello-world 스트림에 사용할 수 있는 이미지를 보여줍니다.

특정 플랫폼용 스트림에 이미지 기록

이 단계에서는 특정 플랫폼용 이미지를 스트림에 "기록"하는 방법을 배우게 됩니다. Docker 용어에서 이는 일반적으로 기존 이미지에 원하는 스트림 및 잠재적으로 플랫폼 정보를 포함하는 새 이름을 태깅하여 수행됩니다. 이미지를 태깅하면 본질적으로 기존 이미지 레이어에 대한 새 포인터가 생성되어 다른 이름과 태그로 동일한 이미지를 참조할 수 있습니다.

이미지를 태깅하는 기본 명령어는 docker tag입니다. 구문은 다음과 같습니다.

docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
  • SOURCE_IMAGE[:TAG]: 태깅하려는 기존 이미지의 이름과 선택적 태그입니다.
  • TARGET_IMAGE[:TAG]: 이미지에 할당하려는 새 이름과 선택적 태그입니다. TARGET_IMAGE 부분은 스트림 이름을 나타냅니다.

이전 단계에서 풀링한 ubuntu 이미지를 사용해 보겠습니다. 새 스트림 이름, 예를 들어 myubuntu로 태깅합니다.

먼저 기존 ubuntu 이미지와 해당 ID 를 확인해 보겠습니다.

docker images ubuntu

IMAGE ID를 기록하면서 다음과 유사한 출력을 볼 수 있습니다.

REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
ubuntu       latest    d621e9f15c2f   2 weeks ago    72.8MB

이제 ubuntu:latest 이미지를 새 스트림 이름 myubuntu 및 태그 v1.0으로 태깅해 보겠습니다.

docker tag ubuntu:latest myubuntu:v1.0

이 명령어는 성공하면 많은 출력을 생성하지 않습니다. 단순히 새 태그를 생성합니다.

이제 이미지를 다시 나열하여 새로 태깅된 이미지를 확인해 보겠습니다.

docker images

이제 원래 ubuntu:latest 이미지와 새 myubuntu:v1.0 이미지가 모두 표시되어 동일한 IMAGE ID를 가리키는 것을 볼 수 있습니다.

REPOSITORY   TAG       IMAGE ID       CREATED        SIZE
myubuntu     v1.0      d621e9f15c2f   2 weeks ago    72.8MB
ubuntu       latest    d621e9f15c2f   2 weeks ago    72.8MB
hello-world  latest    d2c94e258dcb   2 months ago   13.3kB

myubuntu:v1.0ubuntu:latest와 동일한 IMAGE ID를 갖는다는 점에 유의하십시오. 이는 myubuntu:v1.0이 동일한 기본 이미지 데이터에 대한 새로운 참조임을 확인합니다.

docker tag 명령어 자체는 태깅 프로세스에서 플랫폼을 명시적으로 처리하지 않지만, 이미지 자체는 특정 플랫폼용으로 빌드될 수 있습니다. 이미지를 풀링하면 Docker 는 일반적으로 시스템의 아키텍처에 맞는 이미지를 풀링합니다. 다른 플랫폼용 이미지로 작업해야 하는 경우, 일반적으로 docker buildx와 같은 도구를 사용하여 다중 플랫폼 이미지를 빌드하거나 풀 작업 중에 플랫폼을 지정합니다 (예: docker pull --platform linux/amd64 ubuntu). 그러나 기존 이미지를 스트림에 "기록"하는 목적을 위해 docker tag 명령어는 해당 이미지에 대한 새로운 참조를 다른 스트림 이름 내에서 생성하는 표준 방법입니다.

요약

이 랩에서는 docker scout stream 명령어를 사용하여 스트림을 관리하는 방법을 배웠습니다. 먼저, 본질적으로 이미지의 저장소 또는 컬렉션인 기존 스트림을 나열하는 방법을 이해하는 것으로 시작했습니다. docker images 명령어를 사용하여 다운로드된 모든 이미지를 확인한 다음, awksort -u를 사용하여 출력을 처리하여 고유한 스트림 이름 (저장소) 을 추출하고 나열했습니다.

또한 특정 스트림에 속하는 이미지를 나열하는 방법과 특정 플랫폼용 이미지를 스트림에 기록하는 방법을 배웠습니다. 이러한 단계는 스트림의 컨텍스트 내에서 Docker 이미지를 구성하고 관리하기 위한 기본적인 작업을 보여줍니다.