Dockerコンテナ内でbashを使用する理由
Dockerコンテナを操作する際に、bashシェルを使うことで、コンテナ内の環境を直接確認したり、必要なコマンドを実行することができます。
今回は、そんなbashをDockerで使えるようにする方法を紹介していきます。
UbuntuベースのDockerイメージを使用してbashを実行する
Ubuntuベースのコンテナでは、bashが標準でインストールされていることが多いので、bashシェルを使うと操作がしやすくなります。
まず、UbuntuのDockerイメージを使用してbashを起動します。Dockerのrun
コマンドを使って、Ubuntuコンテナを起動し、bashシェルを開く方法を説明します。
docker run -it ubuntu bash
このコマンドでは、-it
オプションが指定されています。 -it
をつけない場合は、すぐにDockerコンテナがExitになってしまいます。
-i
:標準入力を保持してインタラクティブなセッションを作成します。-t
:疑似ターミナル(tty)を割り当てます。
このコマンドを実行すると、Ubuntuベースの新しいコンテナが起動し、bashシェルにアクセスできます。
例えばこのようになります。
ubuntuのImageは最初にbashコマンドを実行することになっているので、最後のbash
を記述しなくても同じようにbashが立ち上がります。
docker run -it ubuntu
ちなみに-i
だけの場合は、
入力はできるものの、形式が整わない形になり、
-t
だけの場合は、見た目はターミナルになりますが、操作ができなくなります。
既存のDockerコンテナでbashを使用する
既に起動しているコンテナにbashでアクセスする場合、exec
コマンドを使います。このコマンドは、実行中のコンテナに対して新しいプロセスを追加で実行します。
docker exec -it コンテナ名 bash
たとえば、mycontainer
という名前のコンテナが実行中であれば、次のようにbashを起動できます。
docker exec -it mycontainer bash
これにより、コンテナ内のbashシェルにアクセスし、インタラクティブに操作が可能になります。
Dockerコンテナでのbashの終了方法
コンテナ内での操作が完了したら、exit
コマンドを実行することでbashを終了できます。
exit
これにより、bashシェルを閉じ、コンテナのセッションが終了します。コンテナ自体が終了するかどうかは、docker run
で使用したオプションやコンテナの状態によって変わります。
最後に
Dockerでbashを使うことで、コンテナ内の環境を直接操作できるため、デバッグや設定作業が効率的になります。特に、Ubuntuなどの一般的なOSイメージでは、bashがデフォルトで利用可能で、スムーズに作業を進められます。