Dockerを学ぶ(第3回)

はじめに

今回は、アプリケーションを修正してイメージの再作成を行います。

アプリケーションの修正

前回cloneしたアプリについて、TODOが0件の場合のメッセージを修正します。

修正後、最後イメージの作成とアプリケーションの開始を行います。 前回と同様のコマンドを実行しましょう。

  • ビルド
$ docker build -t getting-started .
  • コンテナスタート
$ docker run -dp 3000:3000 getting-started

前回の続きを実施している場合、この時点でエラーが発生します。
前回docker runしたコンテナが現在も動いているためです。これは、前回docker runしたコンテナと今回docuer runするコンテナとでリッスンするPORTが重複しているためです。
今回は、前回スタートしたコンテナを削除することでこの問題を解決します。

コンテナの削除

コンテナを削除するためには、以下の手順を踏む必要があります。

  1. コンテナIDの取得
  2. コンテナの停止
  3. コンテナの削除

それでは、順に実施していきましょう。

コンテナIDの取得

まずはじめに、docker psを使用して、コンテナのIDを取得します。

$ docker ps

すると結果が以下のようになると思います。

CONTAINER ID   IMAGE                    COMMAND                  CREATED          STATUS          PORTS                    NAMES
88c0598817c1   5b0fd87f541d             "docker-entrypoint.s…"   32 minutes ago   Up 32 minutes   0.0.0.0:3000->3000/tcp   jovial_merkle
5261b924c97e   docker/getting-started   "/docker-entrypoint.…"   2 hours ago      Up 2 hours      0.0.0.0:80->80/tcp       unruffled_hopper

1番左端のCONTAINER IDがコンテナのIDとなりますので、このIDをメモなりしておきましょう。

コンテナの停止

先ほどの手順で取得したIDを使用して、コンテナを停止します。

$ docker stop <docker-id>

コンテナの削除

$ docker rm <docker-id>

ここまで出来たら、再度docker psを実施してみましょう。コンテナが削除されていることがわかると思います。

コンテナの起動

古いコンテナが削除できましたので、最初に再作成したイメージを使用してコンテナを開始しましょう。

$ docker run -dp 3000:3000 getting-started

もう一度http://localhost:3000にアクセスしてみましょう。
タスクが0件のときのメッセージが変更されているはずです!!