はじめに
実行中のコンテナー内のDockerイメージは自動的に更新されません。イメージを使用してコンテナを作成すると、新しいリリースがリリースされた後も、そのバージョンを実行し続けます。
古いリリースを使用する特別な理由がない限り、最新のDockerイメージからコンテナーを実行することをお勧めします。
このチュートリアルでは、Dockerイメージとコンテナを最新バージョンに更新する方法を学習します。
前提条件
- コマンドライン/ターミナルウィンドウへのアクセス
- sudoのユーザーアカウント 特権
- 既存のDockerインストール
- 既存のDockerコンテナとDockerイメージ
Dockerイメージとコンテナを最新バージョンに更新する
既存のコンテナを最新のイメージで更新する最良の方法は、最新のイメージをダウンロードして、同じ構成で新しいコンテナを起動することです。以下の手順に従って、コンテナを最新のDockerイメージで更新します。
ステップ1:現在のバージョンを確認する
次のコマンドを使用してシステム上のイメージを一覧表示し、古いイメージがあることを確認します。
sudo docker images
出力には、ダウンロードされた画像とそのタグ(バージョン番号)が表示されます。以下の例では、システムは mysqlを使用していることを示しています 画像バージョン5.7.31 。 DockerHubにリストされているDockerの公式MySQLイメージは、最新バージョン(執筆時点)が 8.0.21であることを示しています。 。
したがって、そのイメージで実行されているコンテナがある場合は、それを更新するのが最善です。
ステップ2:最新の画像をプルする
docker pull
を使用して新しいバージョンのイメージをダウンロードします コマンド:
sudo docker pull [docker_image]
デフォルトでは、Dockerは最新バージョンをプルします。これを確実に行うために、 :latest
を追加できます。 タグ。
たとえば、最新のmysqlイメージをプルするには、次のコマンドを実行します。
sudo docker pull mysql/mysql-server:latest
ステップ3:新しく更新されたコンテナを起動する
最新のDockerイメージをダウンロードしたら、古いコンテナーを停止して削除する必要があります。次に、最新の画像を使用して新しい画像を作成します。
1.システム上のコンテナを一覧表示して、古いイメージで実行中のコンテナの名前を見つけます。
sudo docker ps
この例では、出力は mysql / mysql-server:5.7.31を使用するコンテナーを示しています。 画像。
2.既存のコンテナを停止して削除し、同じ名前で新しいコンテナを起動できるようにします:
sudo docker stop [container_id]
sudo docker rm [container_id]
[container_id]
を置き換えます コンテナのID番号を使用します。
3. docker run
を使用してコンテナを再作成します 更新されたDockerイメージを使用したコマンドと必要な構成:
sudo docker run --name=[container_name] [options] [docker_image]
ある場合は、以前に使用したコンテナーに割り当てられたDockerボリュームをマウントして、更新されたコンテナーに同じコンテンツが含まれるようにしてください。これを行うには、 -v
を使用します オプションの後にボリュームディレクトリへのパスが続きます。
たとえば、更新MySQLコンテナを実行するには、次のコマンドを実行します。
sudo docker run --name=mysql --restart=always -e MYSQL_ROOT_PASSWORD=mypassword -v /path/to/directory:/var/lib/mysql -d mysql
4.コンテナを次のように一覧表示することで、コンテナが最新のDockerイメージで更新されているかどうかを確認できます。
sudo docker ps