type
status
date
slug
summary
tags
category
icon
password
第3章: コンテナの管理
目標
事前に構築されたコンテナイメージを操作し、コンテナ化されたサービスを作成および管理します。
目的
- コンテナのライフサイクルを作成から削除まで管理できるようになる。
- コンテナの再起動時にアプリケーションデータを保持するために永続ストレージを使用する。
- Dockerがどのようにコンテナにネットワークアクセスを提供するかを理解し、ポート転送を介してコンテナにアクセスする方法を学ぶ。
セクション
- コンテナのライフサイクルの管理(およびガイド付き演習)
- Docker永続ストレージの追加(およびガイド付き演習)
- Dockerネットワークの利用(およびガイド付き演習)
コンテナのライフサイクルの管理
目標
このセクションを終えた後、学生はコンテナのライフサイクルを作成から削除まで管理できるようになります。
Dockerクライアントの動詞
Dockerクライアント(
docker
コマンド)は、コンテナの作成および管理に使用される動詞(コマンド)のセットを提供します。以下は、コンテナの状態を変更するために最もよく使用される動詞のまとめです。コンテナの状態を変更する動詞
docker run
: 新しいコンテナを作成し、その中でプロセスを開始します。
docker ps
: 実行中のコンテナのリストを表示します。
docker stop
: 実行中のコンテナを停止します。
docker start
: 停止したコンテナを再開します。
docker restart
: 実行中のコンテナを再起動します。
docker rm
: 停止したコンテナを削除します。
さらに、Dockerクライアントは、実行中または停止したコンテナに関する情報を取得するための動詞も提供しています。以下は、それに関する動詞のまとめです。

コンテナに関する情報を取得する動詞
docker logs
: コンテナのログを表示します。
docker inspect
: コンテナまたはイメージの詳細情報を取得します。
これらのコマンドは、コンテナの状態を管理したり、情報を取得したりする際に使用されます。

コンテナの作成
docker run
コマンドを使用して、新しいコンテナを作成し、その中でプロセスを開始します。もしコンテナイメージがローカルにない場合、Dockerは自動的にそのイメージをダウンロードしようとします。例: コンテナを作成して起動する
この出力では、コンテナは非インタラクティブなプロセスで開始され、Ctrl+C(SIGINT)でそのプロセスを停止すると、コンテナも停止します。
この出力の説明は、コンテナが非インタラクティブなプロセス(例えば、Webサーバーのようなもの)で開始されることを示しています。そのため、ユーザーが何かを入力したり、直接操作したりすることなく、プロセスが自動的に実行されます。
ここで、「Ctrl+C(SIGINT)」を押すと、そのプロセスが停止し、結果としてコンテナも停止するという意味です。非インタラクティブなプロセスでは、プロセスが終了するとコンテナ自体も終了するため、Ctrl+Cでプロセスが終了し、コンテナが停止することになります。
コンテナIDと名前
Dockerコマンドの管理には、コンテナIDまたは名前が必要です。
docker run
コマンドName指定ないと、はランダムなIDと名前を生成します。コンテナIDは自動的に生成され、ユニークである必要があります。また、コンテナ名も自動的に生成されるか、手動で指定できます。
コンテナ名の明示的な指定
コンテナ名は
--name
オプションを使用して指定できます。名前はユニークである必要があります。同じ名前のコンテナが存在する場合(停止中のコンテナを含む)、エラーが発生します。
バックグラウンドでの実行(デタッチドモード)
d
オプションを使用して、コンテナをバックグラウンドで実行することができます。これにより、コンテナIDが画面に表示されます。
コマンドの指定
コンテナイメージ自体には、コンテナ化されたプロセスを開始するためのコマンドが指定されていますが、
docker run
で異なるコマンドを指定することも可能です。この例では、HTTPDサービスは開始されませんが、指定したコマンドがコンテナ内で実行されます。
インタラクティブモードでの実行
Bashシェルを実行したい場合は、次のように
-it
オプションを使います。t
とi
オプションは、インタラクティブなテキストベースのプログラムに適切な端末を提供しますが、バックグラウンドで動作するデーモンには必要ありません。
コンテナ内でコマンドを実行する
docker exec
コマンドを使った実行- コンテナ内で別のプロセスを実行するには、
docker exec
コマンドを使用します。 - 例として、コンテナ内でホスト名を表示するコマンドを実行します。
- コンテナIDの代わりにコンテナ名を使っても同様に実行できます。
コンテナの作成と管理に関するデモンストレーション
- コンテナの作成
- 以下のコマンドで、
rhel7
イメージを使ってコンテナを作成し、dd
コマンドを実行します。このコマンドは、無限にデータをコピーし続けるため、コンテナは終了しません。
- コンテナが実行中か確認する
- 新しいターミナルを開き、
docker ps
コマンドでコンテナが実行中か確認します。
- コンテナを停止する
- 次に、コンテナを停止するために、
docker stop
コマンドを使用します。
- コンテナが停止したことを確認する
- 再度、
docker ps
を実行し、コンテナが停止したことを確認します。
- コンテナ名を指定せずに新しいコンテナを作成
- コンテナ名を指定せずに新しいコンテナを作成すると、Dockerが自動で名前を生成します。
- 生成されたコンテナ名を確認する
docker ps
コマンドで生成されたコンテナ名を確認します。例として、reverent_blackwell
という名前が生成されます。
- 生成されたコンテナを停止する
- 生成されたコンテナを停止するために、
docker stop
コマンドを使用します。
- デーモンモードでコンテナを実行する
d
オプションを使って、バックグラウンドでコンテナを実行します。例えば、MySQLや長時間動作するコマンド(例:dd
)の実行に利用されます。
- デーモンモードで実行したコンテナを停止する
docker stop
コマンドを使って、デーモンモードで実行しているコンテナを停止します。
- 特定のコマンドを実行して終了するコンテナ
- コンテナ内で特定のコマンドを実行し、結果を表示して終了することもできます。例として、
/etc
ディレクトリの内容をリスト表示するコマンドを実行します。
- 実行中でないコンテナを確認する
- コンテナが終了したことを確認するために、
docker ps
を実行します。
- インタラクティブモードでコンテナを実行する
- インタラクティブモード(
it
オプション)でコンテナを実行し、コンテナ内で操作を行います。
- コンテナ内での操作を終了する
- コンテナ内での操作が終了したら、
exit
コマンドでコンテナから抜けます。
- 停止したコンテナを削除する
- 停止したコンテナを削除するために、
docker rm
コマンドを使用します。
- 名前なしで起動したコンテナを削除する
- 名前なしで作成されたコンテナを削除するために、
docker rm <container_name>
コマンドを使用します。
- コンテナイメージの削除
- 最後に、使用したコンテナイメージ(
rhel7
)を削除します。
これらの手順を通じて、コンテナの作成、管理、停止、削除の基本的な操作が理解できます。
Dockerコンテナ管理の基礎:便利なコマンドと実践例
Dockerコンテナを管理する基本コマンド
1. コンテナの一覧表示
実行中のコンテナを確認する
コマンド:
docker ps
実行中のコンテナを確認できます。以下は典型的な出力例です。
- CONTAINER ID: コンテナ固有の16進数ID
- IMAGE: 使用されたイメージ名
- COMMAND: コンテナ起動時のコマンド
- STATUS: 実行状態
- PORTS: 公開されているポート情報
- NAMES: コンテナ名
停止したコンテナも含めて表示
a
オプションを付けることで、すべてのコンテナを表示できます。
2. コンテナの停止
実行中のコンテナを優雅に停止する
コマンド:
docker stop <コンテナ名>
以下の例では、
my-httpd-container
という名前のコンテナを停止します。3. コンテナの強制停止
シグナルを使用してコンテナを停止
コマンド:
docker kill <コンテナ名>
特定のシグナル(例:
SIGKILL
)を使用してコンテナを停止します。4. コンテナの再起動
停止中のコンテナを再起動
コマンド:
docker restart <コンテナ名>
同じ状態のコンテナを再起動できます。
5. コンテナの削除
不要なコンテナを削除する
コマンド:
docker rm <コンテナ名>
以下は、すべてのコンテナを削除する例です。
実行中のコンテナを停止してから削除
すべてのコンテナを停止してから削除します。
6. コンテナの詳細情報を確認
コンテナのメタデータを表示
コマンド:
docker inspect <コンテナ名>
コンテナの詳細な情報をJSON形式で表示します。特定のフィールドのみを表示する場合は、
-f
オプションを使用します。例: IPアドレスを取得
実践例:HTTPDコンテナの起動と操作
以下は、HTTPD(Apache HTTP Server)コンテナを使用した実践例です。
- コンテナを起動
- デーモンモードでコンテナを起動。
- 名前を
demo-container
に設定。
- コンテナの停止と再起動
- コンテナ内でファイルを作成
- ページを確認
作成したページにアクセス。
- 新しいコンテナの起動とデータ確認
新しいコンテナを起動しても、以前のコンテナで作成したデータは引き継がれません。
まとめ
Dockerは強力なコンテナ管理ツールを提供し、効率的なアプリケーション開発とデプロイを可能にします。
- 作者:みなみ
- 链接:https://tangly1024.com/資格勉強/140d7ae8-88e2-8085-812a-d64f9b777bf6
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章