Crashcart — это простая утилита командной строки, которая позволяет загружать образ с бинарными файлами Linux в существующий контейнер.
Crashcart — это простой инструмент командной строки, который позволяет загрузить образ с бинарными файлами Linux внутрь существующего контейнера.
Установите Rust:
Сборку можно выполнить через build.sh:
По умолчанию build.sh собирает динамический двоичный файл с использованием gnu. Чтобы собрать статический двоичный файл, установите TARGET на x86_64-unknown-linux-musl:
Для создания образа необходимы следующие зависимости:
Чтобы создать образ, просто установите Docker и используйте build_image.sh:
Скрипт сборки образа создаст образ crashcart_builder с помощью файла Dockerfile в каталоге builder. Затем он запустит этот builder как привилегированный контейнер. Это необходимо, потому что образ создаётся путём монтирования файловой системы ext3 и копирования файлов. Возможно, удастся сделать это без привилегий root, используя что-то вроде e2tools, но они не были упакованы для alpine.
Первый запуск crashcart_builder займёт очень много времени. Перемещённые двоичные файлы создаются из исходного кода через менеджер пакетов nix, а набор инструментов должен быть собран с нуля. Последующие сборки должны выполняться гораздо быстрее, поскольку хранилище nix кэшируется в каталоге vol и монтируется в builder.
Чтобы добавить пакеты в список пакетов в результирующем образе, просто добавьте имена пакетов в файл packages перед сборкой. Пакеты устанавливаются через инструмент nix-env. Актуальный список пакетов nix можно найти здесь.
Чтобы войти в контейнер и запустить bash Crashcart, передайте идентификатор контейнера:
$ID может быть идентификатором контейнера Docker или rkt или PID любого процесса, запущенного внутри контейнера.
Чтобы запустить другую команду из образа Crashcart, укажите полный путь:
Чтобы использовать docker-exec вместо входа в пространства имён через внутреннюю обработку пространств имён Crashcart, используйте флаг -e (ПРИМЕЧАНИЕ: для этого требуется, чтобы $ID был идентификатором контейнера docker):
Чтобы вручную смонтировать образ Crashcart в контейнер, используйте флаг -m.
Чтобы вручную размонтировать образ Crashcart из контейнера, используйте флаг -u.
После того как вы вручную смонтировали образ, вы можете использовать docker exec или nsenter для запуска чего-либо внутри контейнера. Crashcart находит свои двоичные файлы в /dev/crashcart/bin или /dev/crashcart/sbin. Например, чтобы выполнить tcpdump, можно использовать:
Чтобы запустить оболочку со всеми утилитами Crashcart, доступными в пути, можно использовать:
Вы также можете выполнить эквивалентную команду с помощью nsenter:
Обратите внимание, что если вы используете пространства имён пользователей, вам может потребоваться указать -U. Вы также можете использовать -S и -G.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )