はじめに
今回は、アプリケーションを修正してイメージの再作成を行います。
アプリケーションの修正
前回cloneしたアプリについて、TODOが0件の場合のメッセージを修正します。
修正後、最後イメージの作成とアプリケーションの開始を行います。 前回と同様のコマンドを実行しましょう。
- ビルド
$ docker build -t getting-started .
- コンテナスタート
$ docker run -dp 3000:3000 getting-started
前回の続きを実施している場合、この時点でエラーが発生します。
前回docker run
したコンテナが現在も動いているためです。これは、前回docker run
したコンテナと今回docuer run
するコンテナとでリッスンするPORTが重複しているためです。
今回は、前回スタートしたコンテナを削除することでこの問題を解決します。
コンテナの削除
コンテナを削除するためには、以下の手順を踏む必要があります。
- コンテナIDの取得
- コンテナの停止
- コンテナの削除
それでは、順に実施していきましょう。
コンテナ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件のときのメッセージが変更されているはずです!!