22
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Docker】「コンテナに入る」が何をしているか1分で理解する

Posted at

#結論
指定したDockerコンテナの対話形式bashシェルを起動して、コマンドの入力を受け付ける状態にすること。

#「コンテナに入る」コマンドのおさらい

docker exec [オプション] CONTAINER COMMAND [ARG...]

###実行例

// 起動しているコンテナの確認
> docker ps

CONTAINER ID   IMAGE             COMMAND                  CREATED          STATUS          PORTS       
9f9d9249cb39   mariadb:10.5.11   "docker-entrypoint.s…"   18 minutes ago   Up 18 minutes   0.0.0.0:3306->3306/tcp, :::3306->3306/tcp

// MariaDBが起動しているコンテナに入る
docker exec -i -t 9f9d9249cb39 /bin/bash

//コマンドラインが出力されコマンドを入力できるようになる
root@9f9d9249cb39:/# mysql -u root -p とか

#細かく見ていく

###docker exec
CONTAINER IDを指定したコンテナのデフォルトディレクトリで新たにコマンドを実行します。
上記コマンドでいうとコンテナのデフォルトディレクトリで「/bin/bash」を実行していることになります。

-i

標準入力を受け付けることを示すオプションです。
-iをつけないとキーボードからの入力を受け付けてくれません。

// -iを付けないでdocker execしてみる
docker exec -t 9f9 bin/bash 

//コマンドラインが正常に表示されているが、キーボードを叩いても何も入力されない
root@9f9d9249cb39:/#

-t

擬似 TTY を割り当てることを示すオプションです。
TTY(TeleTYpeの略とされているそう)とは、標準入出力となっている端末デバイスを示します。
端末デバイスというとハード的なものが連想されますが、ここではターミナルを指します。
-tをつけないとコマンド入力用のターミナルが割り当てられない...のようなイメージでしょうか。

// -tを付けないでdocker execしてみる
docker exec -i 9f9 bin/bash 

//コマンドラインが表示されない

###/bin/bash
対話形式のbashシェルを起動してコマンドの入力を受け付ける状態にします。

#再まとめ
指定したDockerコンテナの対話形式bashシェルを起動して、キーボードからコンテナ内でコマンドを実行できるようにすることを「コンテナに入る」と表現しているということで理解しました。

コマンドラインを起動して指示を出せるようにしているだけで、あまり「入る」って感じじゃないなあと個人的には思いました。

#参考
https://matsuand.github.io/docs.docker.jp.onthefly/engine/reference/commandline/exec/

22
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
22
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?