kazu22002の技術覚書

PHPer, Golang, AWS エンジニアの日々

docker-composeで「bin/bash」

docker-composeで起動したコンテナの中身を確認したい場合、「bin/bash」コマンドを用いることでログイン状態にできます。

dockerコマンドでもやりましたが、docker-composeの場合のやり方を書いてみます。

基本コマンド

起動している場合には基本コマンドでいけます。

docker-compose ps

StateがUp状態であれば、基本コマンドでいけます。

docker-compose exec SERVICE COMMAND

例として、docker-compose.ymlのserviceにphp7を作成した場合のコマンド

docker-compose exec php7 /bin/bash

起動していない場合

docker-compose run --rm SERVICE COMMAND

execコマンドで実行しても、コンテナが見つかりません。というエラーになるため起動からする必要があるため「run」コマンドを使用します。

ENTRYPOINTが設定されている場合

DockerfileにてENTRYPOINTが設定されている場合は、ENTRYPOINTのコマンドが優先されます。

オプションで「/bin/bash」を指定してしまいましょう。

docker-compose exec --entrypoint /bin/bash SERVICE

#### alpine Linuxの場合の注意点

alpine Linuxを使用している場合、ログイン状態でなにもメッセージが出ない場合があります。

軽くするためにいろいろと表示が省かれていると思われます。

「ls」コマンドを打ってみて、表示があったりすればログインできてたりします。

docker-compose で/bin/bash

簡単かと思っていましたが、状況により使えるコマンドがあったため、何度か困りました。

だんだんと動作が理解できてきたためいろんなパターンを試せた感じです。

設定ファイルが反映されているかどうか確認のために使ってみてください。