- distrolessやscratchなどのシェルが無いコンテナ内に入り込みデバックするためのアプリケーション
- cgroup、ipc、net、pid、user、utsなどの名前空間をデバック対象コンテナと共有することでコンテナ内に入り込むことができる
injeshをインストールした後、一度だけ実行する
$ injesh init
NAMEはデバックコンテナの名前。指定がない場合は自動生成。
- デバックコンテナを生成した際に実行するコマンド。CMDの指定がない場合、デフォルトのシェルを利用
$ injesh launch [CONTAINER_ID or CONTAINER_NAME] [NAME] [CMD]
- 指定PATHのrootfsを基に起動
$ injesh launch [CONTAINER_ID or CONTAINER_NAME] --rootfs=/path/to/rootfs [NAME] [CMD]
- lxd image server からrootfsをDLしてから起動
$ injesh launch [CONTAINER_ID or CONTAINER_NAME] --rootfs-image=<image-name> [NAME] [CMD]
- 指定docker containerのrootfsを基に起動
$ injesh launch [CONTAINER_ID or CONTAINER_NAME] --rootfs-docker=<docker-container-id> [NAME] [CMD]
- 指定lxd containerのrootfsを基に起動
$ injesh launch [CONTAINER_ID or CONTAINER_NAME] --rootfs-lxd=<lxd-container-name> [NAME] [CMD]
CMDがない場合は設定値ファイルのシェルを起動
$ injesh exec [NAME] [CMD]
$ injesh delete [NAME]
$ injesh list
$ injesh file pull [NAME]:/path/to/file /path/to/dest
$ injesh file push /path/to/file [NAME]:/path/to/dest
.
|--config # sample config file
|--images
| |--busybox-1.32.1.tar.bz2 # lxd image server からDLして作成したrootfs
|--containers
| |--bbox-goweb # debug container name
| | |--setting.yaml # config file
| | |--merged
| | |--rootfs # base rootfs
| | |--target_id # docker container id (名前からIDを特定するため)
| |
| |--ubuntu-goweb
| | |--rootfs -> /path/to/custom/rootfs # カスタムrootfsが散らばると汚いのでリンクを張る
| | |--target_id
| | |--upper
| | |--setting.yaml