Могу ли я перечислить все запущенные файлы docker-compose?

bash #docker #docker-container #lsof

#bash #docker #docker-контейнер #lsof

Вопрос:

Мне было интересно, можно ли перечислить все запущенные файлы docker-compose с помощью функции bash? Что-то вроде docker ps или docker container ls, но я хочу, чтобы он показывал только файлы.

Я начал с этого, lsof | egrep 'REG|DIR' | awk '{print $9}' но это также дает мне массу нежелательной информации.

Каков был бы наилучший подход здесь?

Заранее спасибо.

Ответ №1:

Невозможно отследить и найти файл docker-compose, который использовался при развертывании контейнера. Для преодоления таких проблем рекомендуется использовать конвейер проекта с использованием таких инструментов, как maven, jenkins, gradle и т. Д., А также платформу репозитория, такую как github. Если это личный проект, вы можете организовать свой проект, обернув команды развертывания docker и исходные файлы в скрипт и использовать их только для создания развертываний. Таким образом, он будет организован в некоторой степени.

Комментарии:

1. О, хорошо, я понимаю. Не могли бы вы предложить хорошую отправную точку для завершения проекта?

2. Хорошей отправной точкой было бы создание репозитория на github.com и зафиксируйте на нем свои файлы. Кроме того, вы можете называть свои каталоги именами, которые имеют смысл для вас. Если возможно, вы можете поддерживать файл версий и обновлять версии каждый раз, когда вы фиксируете изменения.

3. Хорошо, спасибо за отзыв. К сожалению, я должен был бы с вами не согласиться, я использую расширение VS code, которое делает именно это — вот скриншот для справки: prnt.sc/22a1mt7 Это показало бы контейнер и его файл docker-compose, мне просто нужно выяснить, как это сделать с помощью bash ( :

Ответ №2:

Итак, я поиграл с docker inspect и придумал это:

 for c in `docker ps -q`; do echo $c; docker inspect $c --format '{{index .Config.Labels "com.docker.compose.project.config_files"}}' ; done
 

Так что это возможно 😉