Docker: bash: /dev/null: 権限が拒否されました。

Docker: bash: /dev/null: 権限が拒否されました。

私はdockerを使ってLinux chrootを解凍し、そこにあるコマンドを実行しますが、chrootの中からそれを得ます。

echo ciao > /dev/null
bash: /dev/null: Permission denied

nullデバイスが破損しているようだと思って別のことを試しました。

rm -f /dev/null ; mknod -m 0666 /dev/null c 1 3; echo ciao > /dev/null 
bash: /dev/null: Permission denied

しかし、それも動作しませんでした。

statmain ジョブ/dev/nullと chroot 内のジョブの間に違いはありません。

私はこの問題について書いた最初の人のようで、この文章を書くようになりました。

答え1

速度上の理由から、私のchrootはtmpfsから抽出され、--tmpfs /tmpfs:execdockerにマウントされます。

私のマウントは次のとおりです

tmpfs on /tmpfs type tmpfs (rw,nosuid,nodev,relatime)`

execdockerがtmpfsインストールに追加したデフォルト値をオーバーライドする方法と同様に、オーバーライドする必要があるパスがnoexecありました。nodev

したがって、パラメータは次のようになります。

--tmpfs /tmpfs:exec,dev

迷惑な部分は、mknod失敗したりエラーを報告しないことです。デバイスファイルが作成されましたが実行できません。

関連情報