Docker iconイメージ

Docker

Dockerコマンド入門|コンテナ確認からコンテナに入る方法まで

2022年3月22日

Dockerは、アプリケーションを軽量な「コンテナ」という単位で動かす技術です。

コンテナは仮想マシンよりも軽量で起動が速く、複数環境を同じマシン上で効率的に管理できます。

初心者がまず理解すべきポイントは以下です。

  • コンテナ:アプリケーションとその依存関係をまとめた実行環境
  • イメージ:コンテナを作る元となるテンプレート
  • Dockerコマンド:コンテナの作成・確認・操作を行うための指示

この記事では、特に「今どのコンテナが動いているのか」「コンテナにどう入るのか」に焦点を当て、初心者でも迷わず操作できる手順を解説します。

起動中のコンテナを確認する方法

docker psコマンドの基本

起動中のコンテナを確認するには、次のコマンドを使用します。

$ docker ps

実行すると、以下の情報が一覧で表示されます。

  • CONTAINER ID:コンテナ固有のID
  • IMAGE:使用しているDockerイメージ
  • COMMAND:コンテナ内で実行されているコマンド
  • STATUS:コンテナの状態(Up○分など)
  • PORTS:ポートのマッピング
  • NAMES:コンテナ名

このコマンドを使うことで、どのアプリケーションが稼働中か一目で確認できます。

表示される情報の意味

初心者がつまずきやすいポイントとして「STATUSやPORTSの意味」があります。

例えば、Up 5 minutesは「起動して5分経過」、0.0.0.0:8080->80/tcpは「ホスト8080ポートがコンテナの80番ポートに接続されている」ことを示します。

停止中も含めた全コンテナの確認

docker ps -aの使い方

起動中だけでなく、停止中のコンテナも含めて一覧を見たい場合は次のコマンドを使用します。

$ docker ps -a

これにより、停止したコンテナも確認でき、不要なコンテナの削除や再起動などが容易になります。

実務での活用例

  • 開発中にエラーで停止したコンテナを確認
  • 不要になった古いコンテナを整理
  • トラブルシューティング時に過去のコンテナのログを参照

コンテナに入る方法

docker exec -it CONTAINER_ID bash

コンテナの中で操作を行いたい場合、docker execコマンドを使います。
手順は以下の通りです:

  1. docker psで対象コンテナの CONTAINER ID を確認
  2. 次のコマンドでコンテナ内に入る
docker exec -i -t CONTAINER_ID bash
  • -i:標準入力を有効化
  • -t:擬似端末を割り当て
  • bash:bashシェルを起動

これでコンテナ内に入り、Linuxのコマンドを自由に実行できます。

コンテナから抜ける

作業が終わったら、exitコマンドでコンテナから抜けます。

  • コンテナ自体は停止せずにバックグラウンドで動作し続けます
  • 完全に停止させたい場合は docker stop CONTAINER_ID を使用

よくあるトラブルと回避策

初心者がつまずきやすいポイントをまとめました。

  1. コンテナが見つからない
    • docker psで起動中か確認、停止中は docker ps -a を使用
  2. コンテナに入れない
    • 正しい CONTAINER ID を指定
    • 権限不足の場合は sudo を付与
  3. 環境変数やボリュームが反映されない
    • コンテナ作成時に -e や -v オプションを確認

まとめと次のステップ

本記事では、Dockerコンテナの確認と操作の基本を解説しました。

  • docker ps:起動中のコンテナ確認
  • docker ps -a:停止中も含めて全コンテナ確認
  • docker exec -it … bash:コンテナ内に入る手順

初心者でも迷わず操作できるよう、手順と背景を丁寧に解説しました。

さらに詳しい情報は公式ドキュメントも参考にしてください。

Docker公式ドキュメント - Docker Engine

次のステップとして、Dockerコンテナの削除やログ確認、ネットワーク操作などを学ぶと、より実践的な運用が可能になります。

  • この記事を書いた人

朝倉卍丸

シングルモルトスコッチなどのお土産を持ってきた人を助けるのが好きです。サービスの分割が重要ですが、昔ながらの方法でやりたいこともありますよね。

よく読まれている記事

条件の0=0は全てが正であるを意味するSQL 1

SQLの条件に0=0のような記述を見かけます。 変わった書き方の条件ですが、これは「全てが正である」事を意味しており、結合条件の場合はCROSS JOINと同じです。 下記の例で言えば、結合するsub ...

DISTINCTを使わないで重複排除を考えるSQL 2

SQLのDISTINCTはEXISTSとかGROUP BYでなんとかする事もできます。 DISTINCTは暗黙的なソートがされますが、何のDBを使うにせよ過去のバージョンならともかく、最近のバージョン ...

RFC 5322に準拠させた正規表現言語別 3

RFC5322で定義されている正規表現を、各言語の正規表現に変化させた形になります。 完全な電子メール正規表現は存在しないので、結局のところ何かの公式基準に従っていたとしても、自分が携わるサービスのル ...

-Docker