dockerやgitに関するb

dockerに関するコマンドが長くていちいちサイトに探しに行くのが手間なので、ここに使うコマンドをまとめていこうと思います。

 

apy,apt-getはaptが推奨されているようだ

 

dockerのコンテナを用いてCTFを行う環境を作ろうと考えている。

理由)いろんなtoolなどを用いていったり、pythonを用いたりと変化が多い。PC上にこれを作っていくとバージョン関係がいやと感じた。単純にdockerを使いたいというのもある。また、複数コンテナを立てないのにdocker-composeを使用するのはmountを記述してコンテナと実環境をつなげることができる。コマンドでいちいち記述したくないのでcomposeに書いてしまった。

 

これでCTFがしやすい環境を作っていこうと考えています。

Docker入門(第六回)〜Docker Compose〜 | さくらのナレッジ (sakura.ad.jp)

 

また、会社では集団でファイルを扱っていくことを考えるとgitを使えるようになった方がいいように思う。がんばろ。

 

dockerもCTF用の環境を作っているので公開しても楽しそう。

 

 

docker再起動からのコンテナへのログインの短縮

ことの経緯を

いつもCTFを行うときはdockerでコンテナをたってて、そのコンテナ内で取り組んでいます。

しかし、コンピュータをシャットダウンするとコンテナが停止するして再び行うときに以下の作業を行わないといけません

 

  1. docker Desktop起動
  2. docker ps -aでコンテナID確認
  3. docker restart コンテナIDで再起動
  4. docker container exec -it コンテナID bashでコンテナ内に

以上の作業を行わないといけません。1はいいとして2-4を何回も行っていくのはめんどくさい。どうにかコマンドプロンプトで一回で済ませたい。と思いこの記事を書こうと思いました。一体そんな機能はあるのでしょうか。

 

Dockerコンテナの自動起動設定を変更する方法 - PRESSMAN*Tech (pressmantech.com)

再起動を自動化は出きるっぽい。

これで3ははぶけるのかな?実際再起動して、docker desktopを開いたら起動した!これでrestartは省けそう。

 

コンテナIDはコンテナを作り直さない限りは同じ。コマンドにコンテナIDを入力しておけばいいのではなかろうか?コマンドプロンプトだと上矢印で以前のコマンドを入力する機能がないのでパワーシェルを利用するようにすればよさそう。これで

  1. docker Desktop起動
  2. docker container exec -it コンテナID bashでコンテナ内に

とタイピングも上矢印だけで済むので楽ちん。なかなかなんではなかろうか?。

知識

 

コマンドプロンプトとパワーシェルの違い

ということを次回見ていこうと思う。 [2023/08/22]

 

[2024/02/05]

dockerコンテナ内でイメージファイルやVHDファイルがmountできなかった件

最近CTFを解いているとディスクイメージを渡されることがある。しかし、mountしようと思うとエラーが連発してしまうことをここに記述する。

`mount: ./VHD: mount failed: No such file or directory.`というように存在するディレクトリにも反応してくれない。調べていると既存のコンテナに新しくマウントすることはできないという記事を読んだ。そのせいでできないと予想しました。そこで、ホストOS上でマウントしようと考えた。

pointがないと言われたので、mkdir /mnt/mount_pointを用いた。

`wrong fs type, bad option, bad superblock on /dev/loop3, missing codepage or helper program, or other error.`しかしうまくいかないようだ。

mountエラー「wrong fs type, bad option, bad superblock on /dev/sdb」 | ex1-lab (m-yabe.com)

にフォーマットするとよいと書いてあった。

 購入したHDDをLinuxから使えるようにするには、パーティションの作成、フォーマット、マウントという手順を踏む必要があります。

【 mkfs 】コマンド――HDDなどをフォーマットする:Linux基本コマンドTips(190) - @IT (itmedia.co.jp)

こんなことまで行うのだろうか?

mkfsを行ったのちにこのようになった。まだまだ続くのね。

Permission denied while setting up superblock.

sudo権限で治った。これでフォーマットができたようなので、mountしてみた。

できた。マウントするのにも手順が必要なようだ。

しかし、マウントしたディレクトリのpermissionが付与されないので注意。mountコマンド実行時のディレクトリ権限について:なんとなしの日記 (fc2.com)

これでできてほしい

ダメだった。badoptionですよね。

 

 

この後ファイルを削除しようと思ったが、system的に開かれているので動かせないと言われた。

【Windows 11対応】もう悩まない「ディスク管理」ツール起動方法:Tech TIPS - @IT (itmedia.co.jp)

をもとにディスクの管理画面を開いた。

ここを操作して何とか消せた。CTFでのimageファイル関係は難しい。