Dockerで「OCI runtime exec failed: exec failed: container_linux.go:346:」
今回はDockerを使っているときに下記のようなエラーが起きたときの原因と対策についてお話ししていきます。
1 |
OCI runtime exec failed: exec failed: container_linux.go:346: starting container process caused "exec: \"/bin/bash\": stat /bin/bash: no such file or directory": unknown |
Contents
Dockerで「OCI runtime exec failed: exec failed: container_linux.go:346:」
Dockerを使っていて次のコマンドでコンテナの中に入ろうとしたときに、上記のエラーが起きてしまいました。
1 |
docker-compose exec testApp /bin/bash |
結論を言うと、コンテナ内でbashコマンドが使えない状態であることが原因です。
回避策としては次の2通りあります。
・コンテナ内でbashをインストールする
・「bash」コマンドの代わりに「sh」コマンドを使用してコンテナの中に入る
・コンテナ内でbashをインストールする
私が一番おすすめする方法です。
Dockerfileに次の記述を足して、あらかじめコンテナにbashをインストールしておきましょう。
1 |
RUN apk add bash |
・「bash」コマンドの代わりに「sh」コマンドを使用してコンテナの中に入る
bashコマンドの代わりにshコマンドを使用しましょう。
例として、次のような記述となります。
1 |
docker-compose exec testApp /bin/sh |
1 |
docker-compose exec testApp sh |
終わりに
今回はDockerを使っているときに冒頭のようなエラーが起きたときの原因と対策についてお話しいたしました。
ディスカッション
コメント一覧
まだ、コメントがありません