Как вы, наверное, уже знаете, Java не имеет возможности перечислять все пакеты или классы в каждом пакете. Поэтому вы должны сделать это «жестким» способом. Опции:
grep
, для поиска аннотации. Преимущество: быстрая, простая. Недостатки: можно вернуть ложные срабатывания (например, классы, в которых комментируется аннотация). javap
. Это работает на уровне байт-кода [*]. Он дает точные результаты, но вывод javap
на самом деле не предназначен для автоматической обработки. [*]: аннотация должна иметь Retention.RUNTIME
для этого.
Вы просто делаете docker inspect container_id
, и у вас есть почти полный список.
Имейте в виду, что существует иерархия, поэтому вы можете делать
docker inspect -f '{{ .State.Running }}' 21d
, который может показать
true
или
docker inspect -f '{{ .State.StartedAt }}' 21d
, который может отображать
2015-09-03T08:08:42.204866274Z
Что-то вроде
docker inspect -f '{{ .Config.Env }}' 21d
может вернуть список
См. также справочное сообщение об этом subject
http://container-solutions.com/docker-inspect-template-magic/
Действительные заполнители для --format
доступны в https://docs.docker.com/engine/reference/commandline/ps/#formatting
. Для полноты, это то, что он говорит прямо сейчас для v1.13:
.ID
: Идентификатор контейнера .Image
: Идентификатор изображения .Command
: Цитированная команда .CreatedAt
: Время создания контейнера. .RunningFor
: Истекшее время с момента запуска контейнера. .Ports
: Открытые порты. .Status
: Состояние контейнера. .Size
: Размер контейнера. .Names
: Названия контейнеров. .Labels
: все метки, назначенные контейнеру. .Label
: значение конкретной метки для этого контейнера. Например, "com.docker.swarm.cpu"
.Mounts
: Имена томов, установленных в этом контейнере. .Networks
: Имена сетей, прикрепленных к этому контейнеру.