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
Так что это возможно 😉