[docker]対処法:OCI runtime create failed exec: “bash”: executable file not found

docker_logo

この記事には広告を含む場合があります。

記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。

docker にログインできない問題

docker で環境を構築してログインしようとしたときにエラーが出て、偶にコンテナにログインできない事があるので、エラーの対処法を備忘録として残します。

 

ログインできない原因

エラーの原文

実際の実行履歴

エラーの理由は英語で記載された通り、bash コマンドが $PATH に設定されていない、または bash 自体がコンテナにインストールされていない事が原因です。

 

解決策

対処する方法は主に2つ。

方法1:問答無用で docker にログインするなら「bash」の代わりに「sh」コマンドを使用する。
bash が無ければ別のコマンドを利用してログインすれば良いという考え方。

ただ bash は sh の機能強化版という立ち位置にあるため、コマンドで作業する時に手間がかかる可能性があります。そのため sh でログイン後に bash をインストールして一旦ログアウト。再度 bash でログインし直すという手もあります。

ちなみに sh でログインした後に bash を追加するコマンドは、

apk add bash

です。

 

方法2:Dockerfile に「bash」のインストールを記述してコンテナを作り直す
もう一つは、bash 入りのコンテナを作り直せばよいという考え方。

Dockerfile に

RUN apk add bash

を追記して、コンテナを作り直せばOKです。

 

どちらで対応するかは状況に合わせて使い分けてください。