[解決済み] Dockerコンテナのシェルに入るにはどうしたらいいですか?
質問
Dockerを使い始めたところです。WordPressのベースイメージとdocker-composeを使用しています。
最初のビルド時に作成されたファイル/ディレクトリを検査するために、コンテナの1つにsshで入ろうとしています。私は以下を実行しようとしました。
docker-compose run containername ls -la
しかし、これでは何もできない。たとえそうであっても、1つのコマンドを実行するよりも、ディレクトリ構造をたどることができるコンソールが欲しいのです。Dockerでこれを行うには、どのような方法が正しいのでしょうか?
どのように解決するのですか?
docker attach
は Docker コンテナに接続できるようにしますが、これは実際には
ssh
. 例えば、コンテナがウェブサーバーを動かしている場合。
docker attach
に接続することになるでしょう。
標準出力
を使用することで、ウェブサーバプロセスの 必ずしもシェルを使えるようになるとは限りません。
は、その
docker exec
コマンドは、おそらくあなたが探しているものでしょう。このコマンドは、既存のコンテナの中で任意のコマンドを実行することができます。 例えば
docker exec -it <mycontainer> bash
もちろん、実行するコマンドは、コンテナのファイルシステムに存在している必要があります。
上記のコマンドでは
<mycontainer>
はターゲット・コンテナの名前またはIDです。 を使用しているかどうかは関係ありません。
docker compose
を実行するだけです。
docker ps
で、ID(最初の列に表示される16進数の文字列)または名前(最後の列に表示される)のいずれかを使用します。 例:与えられた
$ docker ps
d2d4a89aaee9 larsks/mini-httpd "mini_httpd -d /cont 7 days ago Up 7 days web
走ることができる
$ docker exec -it web ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
18: eth0: <BROADCAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
link/ether 02:42:ac:11:00:03 brd ff:ff:ff:ff:ff:ff
inet 172.17.0.3/16 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::42:acff:fe11:3/64 scope link
valid_lft forever preferred_lft forever
実行することで、同じことを達成することができました。
$ docker exec -it d2d4a89aaee9 ip addr
同様に、コンテナでシェルを起動することもできますね。
$ docker exec -it web sh
/ # echo This is inside the container.
This is inside the container.
/ # exit
$
関連
-
[解決済み] ドッカーイメージのアイコンを作成する
-
[解決済み] Docker Dockerコンテナからホストへのファイルコピー
-
[解決済み] ホストからDockerコンテナにファイルをコピーする方法は?
-
[解決済み] リポジトリを使用せずに、あるホストから別のホストにDockerイメージをコピーする方法
-
[解決済み] ホストからDockerコンテナのIPアドレスを取得する方法
-
[解決済み] Dockerでデータベースなどの永続的なストレージを扱う方法
-
[解決済み] 既に起動しているDockerコンテナに新しいTTYで入る方法
-
[解決済み】Dockerは仮想マシンとどう違うの?
-
[解決済み】Dockerイメージとコンテナの違いは何ですか?
-
[解決済み】Dockerコンテナのファイルシステムを調査する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】docker-compose.ymlでdocker execを実行する方法
-
[解決済み] Docker - コンテナが実行されていません
-
[解決済み] dockerでCOPYするが、除外する
-
[解決済み] 接続するには、Dockerクライアントを昇格して実行する必要があります。
-
[解決済み] docker run --initに相当するdocker-composeは何ですか?
-
[解決済み] docker terminal: IP待ち
-
[解決済み] ドッカーコンテナの終了ステータス255は何を意味するのですか?
-
bashでの解決方法 : docker :コマンドが見つかりません。
-
docker-composeによるmysqlのデプロイメントの実践
-
[解決済み] LinuxのDockerコンテナでGUIアプリケーションを動かせるか?