Docker の使い方(その2:コンテナ)

この記事は最終更新日から 2年以上 が経過しています。

前回、「Docker の使い方(その1:概要)」の続きです。今回はコンテナについてです。

コンテナの一覧を表示する

コンテナの一覧を表示するには、Docker Desktop から行う方法と、コマンドで行う方法の2種類があります。

Docker Desktop でコンテナの一覧を表示する

Docker Desktop でコンテナの一覧を表示するには、Docker Desktop の左メニューの「Containers / Apps」をクリックします。

ls.png

コマンドでコンテナの一覧を表示する

コマンドでコンテナの一覧を表示するには、docker container ls コマンドを使用します。 オプション無しで実行した場合は、動作中のコンテナのみ表示され、停止中のコンテナは表示されません。

書式
docker container ls
出力内容
CONTAINER ID   IMAGE                    COMMAND                  CREATED          STATUS         PORTS                NAMES
6b0ea7cc5b0b   docker/getting-started   "/docker-entrypoint.…"  12 minutes ago   Up 2 minutes   0.0.0.0:80->80/tcp   test-app

全てのコンテナの一覧を表示する

停止中のコンテナも含めた全てのコンテナの一覧を表示するには、 docker container ls コマンドに -a オプションを付けて実行します。

書式
docker container ls -a

新しいコンテナを作成する

コンテナを動かすためには、コンテナイメージから新しいコンテナを作成する必要があります。 コンテナイメージは Docker Hub のようなコンテナリポジトリに公開されているものや、ご自身で作成したものが使用できます。

create.png

コンテナイメージから新しいコンテナを作成するには、docker container create コマンドと docker container run コマンドの2つがあります。 この2つのコマンドの違いは、新しいコンテナを作成した後に、コンテナの起動を行うかどうかです。 この2つのコマンドには、ほぼ同じオプションを使用することができます。

コマンド 説明
docker container create コマンド 新しいコンテナを作成し、そのコンテナを起動しません
docker container run コマンド 新しいコンテナを作成し、そのコンテナを起動します

コンテナに名前を付ける

コンテナに名前を付ける場合は --name オプションを使用します。 名前を指定しない場合、Docker が自動的に名前を付けてくれますが、わかりづらい名前になってしまいます。

書式
--name <コンテナの名前>
例:コンテナの名前を「test-app」にする
--name test-app

ポートマッピング

-p オプションを使用すると、ホストとコンテナでポートマッピングを行うことができます。 ポートマッピングを行うことで、ホストからコンテナに接続することができるようになります。 例えば、ホストのWebブラウザ(Google Chrome など)からWebサーバーのコンテナ(Apache や nginx など)にアクセスしたい場合や、 MySQL Workbench などのようなソフトから DBサーバー(MySQL など)のコンテナにアクセスしたい場合などは、ポートマッピングが必要になります。 ポートマッピングは複数指定することができます。

書式
-p <ホスト側のポート番号:コンテナ側のポート番号>
例:ホスト側のポート番号8080(http://localhost:8080/)にアクセスすると、
コンテナ側のポート番号80(Webサーバー)にアクセスできるようにする
-p 8080:80
例:ホスト側のポート番号3306にアクセスすると、
コンテナ側のポート番号3306(MySQLサーバー)にアクセスできるようにする
-p 3306:3306
port.png

新しいコンテナを作成する

新しいコンテナを作成するには、docker container create コマンドを使用します。

docker container create コマンドは、コンテナイメージから新しいコンテナを作成しますが、そのコンテナの起動は行いません。 コンテナの作成のみを行います。

書式
docker container create [オプション] <コンテナイメージの名前>
例:コンテナイメージ「docker/getting-started」を使って、
新しいコンテナ(コンテナ名:test-app、ホスト側ポート8080 → コンテナ側ポート80)を作成する
docker container create --name test-app -p 8080:80 docker/getting-started

新しいコンテナを作成して起動する

新しいコンテナを作成して起動するには、docker container run コマンドを使用します。

docker container run コマンドは、コンテナイメージから新しいコンテナを作成し、そのコンテナを起動します。 コンテナを作成した後にいちいちコンテナを起動させるのがメンドウな場合は、こちらのコマンドを使った方が便利です。 docker container create コマンドの後に docker container start コマンド(後述)を実行するのと同じです。

docker container create コマンドと同じオプションが使用でき、さらに追加でコンテナの起動に関係するいくつかのオプションが使用できます。 -d オプションを付けると、コンテナがデタッチモード(バックグラウンド)で起動します。 忘れずに付けておきましょう。

書式
docker container run [オプション] <コンテナイメージの名前>
例:コンテナイメージ「docker/getting-started」を使って、
新しいコンテナ(コンテナ名:test-app、ホスト側ポート8080 → コンテナ側ポート80)を作成し、
その作成されたコンテナをデタッチモード(バックグラウンド)で起動する
docker container run -d --name test-app -p 8080:80 docker/getting-started

コンテナを起動する

既に作成されているコンテナを起動します。 コンテナを起動するには、Docker Desktop から行う方法と、コマンドで行う方法の2種類があります。

Docker Desktop でコンテナを起動する

Docker Desktop でコンテナを起動するには、Docker Desktop の「Containers / Apps」から起動したいコンテナの「START」ボタンをクリックします。

start.png

コマンドでコンテナを起動する

コマンドでコンテナを起動するには、docker container start コマンドを使用します。

書式
docker container start <コンテナのIDもしくは名前>
例:コンテナ名「test-app」のコンテナを起動する
docker container start test-app

コンテナの名前を変更する

コンテナの名前を変更するには、docker container rename コマンドを使用します。

書式
docker container rename <変更するコンテナのIDもしくは名前> <新しいコンテナの名前>
例:コンテナ名「old-app」のコンテナの名前を「new-app」に変更する
docker container rename old-app new-app

コンテナのログを表示する

コンテナの中で何が起こっているのかを確認したい場合は、コンテナのログを表示して確認しましょう。 コンテナのログを表示するには、Docker Desktop から行う方法と、コマンドで行う方法の2種類があります。

Docker Desktop でコンテナのログを表示する

Docker Desktop でコンテナのログを表示するには、Docker Desktop の「Containers / Apps」からログを表示したいコンテナをクリックします。

logs.png logs2.png

コマンドでコンテナのログを表示する

コマンドでコンテナのログを表示するには、docker container logs コマンドを使用します。

書式
docker container logs <コンテナのIDもしくは名前>
例:コンテナ名「test-app」のコンテナのログを表示する
docker container logs test-app

ログをリアルタイムで表示する

ログをリアルタイムで表示するには docker container logs コマンドに -f オプションを付けて実行します。

書式
docker container logs -f <コンテナのIDもしくは名前>

コンテナをWebブラウザで開く

Docker Desktop には、ポートマッピングされているコンテナをWebブラウザで開く機能があります。 この機能で開かれるURLは「http://localhost:ポート番号/」の形式になります。 Webブラウザで開くには、Docker Desktop の「Containers / Apps」からWebブラウザで開きたいコンテナの「OPEN IN BROWSER」ボタンをクリックします。

open_in_browser.png

コンテナ内でコマンドを実行する

コンテナ内でコマンドを実行するには、Docker Desktop から行う方法と、コマンドで行う方法の2種類があります。 コンテナ内でコマンドを実行するには、そのコンテナが起動している必要があります。

Docker Desktop でコンテナ内でコマンドを実行する

Docker Desktop でコンテナ内でコマンドを実行するには、Docker Desktop の「Containers / Apps」からコマンドを実行したいコンテナの「CLI」ボタンをクリックします。

cli.png

コマンドでコンテナ内でコマンドを実行する

コマンドでコンテナ内でコマンドを実行するには、docker container exec コマンドを使用します。

書式
docker container exec <コンテナのIDもしくは名前> <実行したいコマンド>
例:コンテナ名「test-app」のコンテナ内で「ls -ltr」コマンドを実行する
docker container exec test-app ls -ltr
出力内容
total 192
-rwxr-xr-x    1 root     root           646 Dec  2 17:25 package.json
-rwxr-xr-x    1 root     root           170 Jan 22 21:39 Dockerfile
drwxr-xr-x    5 root     root          4096 Jan 22 21:40 src
drwxr-xr-x    4 root     root          4096 Jan 22 21:40 spec
-rwxr-xr-x    1 root     root        174600 Jan 22 21:41 yarn.lock
drwxr-xr-x  163 root     root          4096 Jan 22 21:41 node_modules

コンテナを停止する

コンテナを停止するには、Docker Desktop から行う方法と、コマンドで行う方法の2種類があります。

Docker Desktop でコンテナを停止する

Docker Desktop でコンテナを停止するには、Docker Desktop の「Containers / Apps」から停止したいコンテナの「STOP」ボタンをクリックします。

stop.png

コマンドでコンテナを停止する

コマンドでコンテナを停止するには、docker container stop コマンドを使用します。

書式
docker container stop <コンテナのIDもしくは名前>
例:コンテナ名「test-app」のコンテナを停止する
docker container stop test-app

コンテナを再起動する

コンテナを再起動するには、Docker Desktop から行う方法と、コマンドで行う方法の2種類があります。

Docker Desktop でコンテナを再起動する

Docker Desktop でコンテナを再起動するには、Docker Desktop の「Containers / Apps」から再起動したいコンテナの「RESTART」ボタンをクリックします。

restart.png

コマンドでコンテナを再起動する

コマンドでコンテナを再起動するには、docker container restart コマンドを使用します。

書式
docker container restart <コンテナのIDもしくは名前>
例:コンテナ名「test-app」のコンテナを再起動する
docker container restart test-app

コンテナを削除する

コンテナを削除するには、Docker Desktop から行う方法と、コマンドで行う方法の2種類があります。

Docker Desktop でコンテナを削除する

Docker Desktop でコンテナを削除するには、Docker Desktop の「Containers / Apps」から削除したいコンテナの「DELETE」ボタンをクリックします。 コンテナが動作中の場合でも削除できるので注意してください。

delete.png

コマンドでコンテナを削除する

コマンドでコンテナを削除するには、docker container rm コマンドを使用します。 コンテナを削除するには、そのコンテナを先に停止しておく必要があります。

書式
docker container rm <コンテナのIDもしくは名前>
例:コンテナ名「test-app」のコンテナを削除する
docker container rm test-app

コンテナの停止と削除を同時に行う

コンテナを削除するには、そのコンテナを先に停止しておく必要がありますが、 docker container rm コマンドに -f オプションを付けて実行すると、 コンテナの停止と削除を1つのコマンドで同時に行うことができます。

書式
docker container rm -f <コンテナのIDもしくは名前>

コマンドで停止中のコンテナを全て削除する

未使用のコンテナがたくさんあって、1つ1つ削除するのがメンドウな場合には、 docker container prune コマンドが便利です。 このコマンドを使用すると、停止中のコンテナが全て削除されます。

書式
docker container prune

参考サイト

関連記事

最近では、アプリケーションの実行環境の構築に Docker を使うことも珍しくなくなりました。Docker は便利ではあるのかもしれませんが、難しく感じて敬遠されている人もいるのではないでしょうか。その感覚はおそらく間違っていません。実際、知れば知るほど奥が深い技術だと感じてしまいます。もはや沼というか深淵を覗いている ...
前回、「Docker の使い方(その2:コンテナ)」の続きです。今回はコンテナイメージについてです。コンテナイメージの一覧コンテナイメージの一覧を表示するには、Docker Desktop から行う方法と、コマンドで行う方法の2種類があります。Docker Desktop でコンテナイメージの一覧を表示するDocker ...
前回、「Docker の使い方(その3:コンテナイメージ)」の続きです。今回はボリュームについてです。ボリュームコンテナは作り直すと中身が初期状態に戻ってしまいます。ですが、コンテナの中のアプリケーションが作成したファイルなど、残しておいてほしいファイルもあると思います。例えばデータベースに保存されているデータなどです ...
前回、「Docker の使い方(その4:ボリューム)」の続きです。今回はネットワークについてです。複数のコンテナを連携させるこれまでは1つのコンテナについて説明してきましたが、複数のコンテナを連携させたい場合はどうすればよいでしょうか。例えば、Webサーバーコンテナと、DBサーバーコンテナを通信させたいような場合です。 ...
前回、「Docker の使い方(その5:ネットワーク)」の続きです。今回は Docker Compose についてです。Docker Compose とは?ここまで Docker の基本的な操作について説明してきました。コンテナを使ってアプリケーションを起動するためには、コンテナイメージからコンテナを起動し、そのコンテ ...

記事検索

最新記事

人気記事

RSSフィード

お知らせ

フィードバック

要望などあれば、お気軽にどーぞ。 不具合やバグを発見した場合も、連絡をいただけると助かります。

匿名でフィードバックする
匿名でフィードバックする

要望などあれば、お気軽にどーぞ。 不具合やバグを発見した場合も、連絡をいただけると助かります。

なお、このフォームから入力された内容について、管理者から返信はできませんので注意してください。 もし、管理者からの返信が必要であれば、X(Twitter) もしくは、お問い合わせより、お願いします。

  • フィードバックの送信が完了しました。