そもそもDockerコンテナとは?

Dockerコンテナとは、アプリケーションやツールを動かすための独立した「仮想の実行環境」です。
コンテナ技術によって、OSやハードウェアに関係なく、一貫した環境でアプリケーションを実行できます。
Dockerの主要概念を簡単に整理すると:
- イメージ:アプリケーションの「設計図」。OS、ミドルウェア、アプリケーション、設定など必要な要素がパッケージ化されたもの
- コンテナ:イメージをもとに実際に起動・実行される環境。実行中のアプリケーションインスタンス
コンテナを起動する基本コマンド

最もシンプルな起動方法
Dockerが正しく動作するか確認する最も簡単な方法は、公式のテスト用イメージを実行することです:
docker run hello-world
このコマンドは、hello-worldイメージをダウンロードし、コンテナを起動します。コンテナは情報を表示して終了します。
バックグラウンドで起動する(よく使う)
実用的なシナリオでは、コンテナをバックグラウンドで実行することが多いです:
docker run -d --name my_container_name イメージ名
-d
:デタッチモード(バックグラウンドで実行)--name
:コンテナに名前を付ける(管理しやすくなる)
例えば、Nginxウェブサーバーを起動する場合:
docker run -d --name my-nginx nginx
ポートを指定して起動する(Webアプリなどに必須)
Webアプリケーションやサービスを実行する場合、ホストマシンからコンテナ内のサービスにアクセスするためにポートマッピングが必要です:
docker run -d -p 8080:80 nginx
-p ホスト:コンテナ
:ホストのポートとコンテナのポートをマッピング
この例では、ホストマシンの8080ポートにアクセスすると、コンテナ内のNginxサーバー(80ポート)に転送されます。ブラウザで http://localhost:8080
を開くとNginxのウェルカムページが表示されます。
起動済みのコンテナに接続(ログイン)する
実行中のコンテナ内でコマンドを実行したい場合(トラブルシューティングや設定変更など):
docker exec -it my_container_name /bin/bash
-i
:インタラクティブモード(標準入力を維持する)-t
:疑似TTY(ターミナル)を割り当てる/bin/bash
:コンテナ内で実行するコマンド(この場合はシェル)
コンテナの状態を確認する

現在実行中のコンテナを確認するには:
docker ps
すべてのコンテナ(停止中のものも含む)を表示するには:
docker ps -a
出力には、コンテナID、使用しているイメージ、作成日時、ステータス、公開ポート、名前などの情報が含まれます。
コンテナの再起動・停止
実行中のコンテナを停止するには:
docker stop my_container_name
停止したコンテナを再開するには:
docker start my_container_name
コンテナを完全に削除するには:
docker rm my_container_name
よくあるつまずきポイントQ&A

Q. コンテナがすぐ終了してしまう…
A. Dockerコンテナは、メインプロセスが終了すると自動的に停止します。
バックグラウンドサービス(Webサーバーなど)は継続して実行されますが、単発のコマンドを実行するだけのコンテナはすぐに終了します。
コンテナを維持するには:
docker run -d イメージ名 tail -f /dev/null
Q. イメージが見つからないと言われる…
A. イメージをまだダウンロードしていない場合は、明示的にpullするか、存在しないイメージ名でないか確認してください:
docker pull イメージ名
Q. ポートが既に使用されていると言われる…
A. 指定したホストポートが既に他のアプリケーションで使用されている可能性があります。
別のポートを試してみましょう:
docker run -d -p 8081:80 nginx
Q. 「permission denied」エラーが表示される…
A. Dockerコマンドを実行するには適切な権限が必要です。
Linuxでは、ユーザーをdockerグループに追加するか、sudoを使用してください。
まとめ|Dockerコンテナ起動の基本はこれだけ!
Dockerコンテナを使い始めるために覚えておきたい基本コマンドは次の通りです:
やりたいこと | コマンド例 |
---|---|
コンテナの起動 | docker run -d イメージ名 |
ポート指定で起動 | docker run -d -p 8080:80 イメージ名 |
コンテナ内に入る | docker exec -it コンテナ名 /bin/bash |
実行中コンテナの確認 | docker ps |
コンテナの停止 | docker stop コンテナ名 |
コンテナの再開 | docker start コンテナ名 |
最初はdocker run hello-world
から始めて、次に簡単なWebサーバー(nginx)を起動してみましょう。
実際に手を動かすことで、Dockerの基本的な使い方が身につきます。
Dockerの基本を理解したら、次のステップとしてDockerfile作成、ボリュームマウント、Dockerネットワーク、Docker Composeなどの機能を学ぶと、さらに可能性が広がります。
コメント