Docker は、最新のアプリケーション開発で最も人気のあるコンテナ プラットフォームになりました。 Docker を使用すると、アプリケーション、サービス、およびそれらに必要な依存関係を独立したランタイム環境にパッケージ化し、デプロイ、管理、拡張が容易になります。 Docker では、コンテナーの作成と実行に必要なイメージは、Docker ファイル内の指示によって定義されます。歴史的に、Docker イメージが構築されリリースされると、変更することはできません。しかし、テクノロジーの継続的な発展により、さまざまな方法で Docker ファイル内のコードを更新できるようになりました。この記事では、Docker ファイル内のコードを更新する方法について説明します。
Docker ファイル内のコードを更新する最も簡単な方法は、Git Pull コマンドを使用してコード リポジトリから最新のコードを抽出することです。たとえば、アプリケーション コードが GitHub に保存されている場合、次の git コマンドを使用してコード ベースを更新できます。
$ git pull origin master
これにより、ローカル コード ベースが更新され、変更が Docker ファイルに適用されます。コードに依存関係やその他の要件がない場合は、コードを更新した後に Docker イメージを再構築できます。
アプリケーションに複数の依存関係がある場合、または大量のファイルをダウンロードする場合、更新するたびにこれらの依存関係を再ダウンロードして構築する必要があるため、時間がかかる可能性があります。そしてリソース。この問題を解決するには、Docker のビルド キャッシュを使用できます。キャッシュを使用すると、Docker イメージをより速くビルドでき、変更された部分のみを再ビルドする必要があります。
たとえば、Dockerfile の最初の行で基本イメージを指定し、apt-get を使用して多数のパッケージと依存関係をインストールするとします。これにより、Docker は複数回ビルドするときにこれらのパッケージと依存関係をすべて再ダウンロードします。ただし、キャッシュを使用する場合、Docker はビルドで使用されるパッケージと依存関係のハッシュを比較して、どれを再ダウンロードする必要があるか、どれをキャッシュから再利用できるかを判断することにより、ビルドを大幅に高速化します。
Dockerfile の命令で特別にフォーマットされたタグを使用することで、Cache キャッシュの使用を制御できます。たとえば、次のディレクティブは、以前のビルドのイメージの状態をキャッシュとして使用します:
FROM myimage:1.0
これにより、Docker はコンテナーを再構築するときに最後のビルドの状態をチェックします。 Dockerfile の内容と命令が以前のビルドで変更されていない場合、Docker はキャッシュ キャッシュから以前のビルドの結果を再利用します。
Docker Compose は、複数コンテナーの Docker アプリケーションを定義して実行するために使用できるツールです。 Docker Compose を使用すると、Docker ファイル内のコードを簡単に更新できます。たとえば、Dockerfile が CMD または ENTRYPOINT ディレクティブで 1 つ以上のソース コード ディレクトリを参照している場合、Docker Compose と Volume を使用してそれらのソース コード ディレクトリを更新できます。ボリュームを定義すると、Docker Compose はこれらのディレクトリをマウントし、コンテナーの再起動時に最新のコードで更新します。
以下は、Docker Compose 構成ファイルの例です。
version: "3" services: web: image: myimage:1.0 volumes: - .:/usr/src/app ports: - "5000:5000"
これにより、「web」という名前のコンテナーが作成され、現在のディレクトリがコンテナー内の /usr/src/app パスにマップされます。したがって、Docker Compose がコンテナーを起動するたびに、ソース コード ディレクトリは最新のコードで自動的に更新されます。
多くの Git ベースの自動ビルドおよびデプロイメント ツール (Jenkins、Travis CI、Circle CI など) は、Docker を自動的に更新できます。ファイルのコード。これらのツールはコード リポジトリを監視し、新しいコードのコミットまたはプッシュが検出されると、自動的に Docker イメージのビルドをトリガーします。
たとえば、Jenkins では、新しいコミットごとにビルド操作をトリガーする「自動ビルド」というジョブを作成できます。ビルド操作では次の手順が実行されます。
このようなツールを使用すると、手動で何もすることなく、Docker ファイル内のコードを自動的に更新できます。
Docker は、アプリケーションを開発およびデプロイする際に不可欠なツールとなっています。 Docker は、アプリケーションをパッケージ化して配布するための便利で標準的な方法を提供します。 Docker では、Docker ファイル内のコードはさまざまな方法で更新できます。この記事では、最新のコードのプル、Cache キャッシュの使用、Docker Compose と Volume の使用、Git ベースの自動ビルドおよびデプロイメント ツールの使用など、いくつかの一般的な方法を紹介します。どの方法を選択する場合でも、アプリケーションが常に最良の状態で表示されるように、コードが常に最新であることを確認してください。
以上がdocker ファイル内のコードを更新する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。