Задать вопрос
@nihi1ist

Как корректно выгрузить список docker-образов в массив?

Подскажите, можно ли результат команды:
docker image ls --format "{{.Repository}} {{.Tag}}"

Разбить в виде структуры:
(
  ("image1" "tag1")
  ("image2" "tag2")
  ("image3" "tag3")
)

Чтобы в последующем корректно работать в цикле.
  • Вопрос задан
  • 888 просмотров
Подписаться 2 Средний 2 комментария
Решения вопроса 1
Lynn
@Lynn
nginx, js, css
Можно сразу передавать данные в цикл:
docker image ls --format "{{.Repository}} {{.Tag}}" | while read image tag; do
  echo "image: $image"
  echo "tag: $tag"
done


В принципе можно просто сохранить в переменную и потом использовать её, точно так же:
images=$(docker image ls --format "{{.Repository}} {{.Tag}}")
echo "$images" | while read image tag; do
  echo "image: $image"
  echo "tag: $tag"
done
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
SignFinder
@SignFinder
Wintel\Unix Engineer\DevOps
--format json, а дальше передать jq и делать все, что хочется
Ответ написан
А ЗАЧЕМ НА ГОПИШЕТЕ ЕСЛИ НЕ ИДЕТ ?

docker image ls --format json | jq -r '.' >a.json
jq -r '.|select(.Repository=="openjdk")' a.json  | jq '.'

{
  "Containers": "N/A",
  "CreatedAt": "2021-06-22 17:41:09 -0400 EDT",
  "CreatedSince": "4 years ago",
  "Digest": "<none>",
  "ID": "264c9bdce361",
  "Repository": "openjdk",
  "SharedSize": "N/A",
  "Size": "326MB",
  "Tag": "17-alpine",
  "UniqueSize": "N/A",
  "VirtualSize": "325.6MB"
}
{
  "Containers": "N/A",
  "CreatedAt": "2019-05-10 21:32:36 -0400 EDT",
  "CreatedSince": "6 years ago",
  "Digest": "<none>",
  "ID": "f7a292bbb70c",
  "Repository": "openjdk",
  "SharedSize": "N/A",
  "Size": "84.9MB",
  "Tag": "8-jre-alpine3.9",
  "UniqueSize": "N/A",
  "VirtualSize": "84.92MB"
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы