Docker Imageの更新

続いてイメージの更新について調べていく

参照
Docker ドキュメント日本語化プロジェクト

アプリケーションの更新

作業ディレクトリ:getting-started/app

ソースコードの更新

Todoアプリの表示メッセージを更新する
getting-started/app/src/static/js/app.js
上記の56行目を更新する

No items yet! Add one above!

見せられないよ!

以下のコマンドでコンテナを停止

docker stop <CONTAINER ID>

さらにコンテナを削除

docker rm <CONTAINER ID>

ちゃんとコンテナが削除されているか確認

docker ps -a

削除されていれば、対象のコンテナデータが消えている

以下のコマンドでイメージを再構築

docker build -t getting-started .
[+] Building 2.7s (11/11) FINISHED                                                                                                                           docker:default
 => [internal] load build definition from Dockerfile                                                                                                                   0.0s
 => => transferring dockerfile: 186B                                                                                                                                   0.0s 
 => resolve image config for docker-image://docker.io/docker/dockerfile:1                                                                                              1.5s 
 => CACHED docker-image://docker.io/docker/dockerfile:1@sha256:9857836c9ee4268391bb5b09f9f157f3c91bb15821bb77969642813b0d00518d                                        0.0s
 => [internal] load metadata for docker.io/library/node:18-alpine                                                                                                      0.8s 
 => [internal] load .dockerignore                                                                                                                                      0.0s
 => => transferring context: 2B                                                                                                                                        0.0s
 => [1/4] FROM docker.io/library/node:18-alpine@sha256:8d6421d663b4c28fd3ebc498332f249011d118945588d0a35cb9bc4b8ca09d9e                                                0.0s 
 => [internal] load build context                                                                                                                                      0.2s 
 => => transferring context: 2.49kB                                                                                                                                    0.2s 
 => CACHED [2/4] WORKDIR /app                                                                                                                                          0.0s 
 => CACHED [3/4] COPY . .                                                                                                                                              0.0s 
 => CACHED [4/4] RUN yarn install --production                                                                                                                         0.0s 
 => exporting to image                                                                                                                                                 0.0s 
 => => exporting layers                                                                                                                                                0.0s 
 => => writing image sha256:8ac9c91fde3ede07a57715c4f5db58e4ce17f1edb0383ba31297d3027202b2c7                                                                           0.0s 
 => => naming to docker.io/library/getting-started

イメージが作成されているか確かめる

 docker images
項目 ステータス
REPOSITORY getting-started
TAG latest
IMAGE ID 8ac9c91fde3e
CREATED 6 minutes ago
SIZE 217MB

できた

コンテナを起動する

docker run -dp 127.0.0.1:3000:3000 getting-started
項目 ステータス
CONTAINER ID b0d719f1b713
IMAGE getting-started
COMMAND “docker-entrypoint.s…”
CREATED 8 seconds ago
STATUS Up 7 seconds
PORTS 127.0.0.1:3000->3000/tcp
NAMES fervent_beaver

起動したので、以下から確認してみる http://localhost:3000/

おお、更新されている

流れとしては
コンテナの停止・削除
※rmコマンドに-fオプションを付けることで、停止と削除が合わせてできるらしい

docker rm -f <CONTAINER ID>

その後、イメージの再作成とコンテナの起動が必要ということか

次はデータの保持について調べていきたいと思う

コメント