.dockerignore ファイルとは何か?そしてなぜ使うべきなのか? - TechRepublic

.dockerignore ファイルとは何か?そしてなぜ使うべきなのか? - TechRepublic

画像: Docker

噂に反して、Dockerは依然として非常に人気があります。多くの大企業や開発者がこのコンテナ技術に依存し続けており、今後も長期間にわたってその傾向が続くでしょう。そのため、エンタープライズ開発チームの一員になることを目指しているのであれば、Dockerスキルを磨き続ける必要があるでしょう。

Dockerを初めて使う方には、学ぶべきことがたくさんあります。おそらく、Dockerを使ってシンプルなアプリをデプロイする方法や、ランタイムを使ってより複雑なアプリをデプロイする方法は既に理解されているでしょう。しかし、他にも知っておくべきスキルや機能がいくつかあります。その一つが.dockerignoreファイルです。

参照: 採用キット: JavaScript 開発者 (TechRepublic Premium)

.dockerignore ファイルは .gitignore ファイルと非常によく似ており、Docker がビルドプロセス中に無視するファイルまたはディレクトリのリストを指定できます。これは特定の状況で非常に便利です。しかし、さらに重要なのは、.dockerignore を使用するとイメージのサイズを縮小し、ビルドプロセスを劇的に高速化できることです。非常に忙しい環境で働いている人なら誰でも、ビルドの高速化の必要性を十分に理解しているはずです。特に、会社がストレージに費用を支払っていて、アプリケーションやサービスを大規模に展開している場合は、イメージのサイズを縮小することが非常に重要です。

.dockerignore ファイルのもう一つの利点は、イメージの攻撃対象領域を縮小できることです。イメージ内には不要な「もの」(特にパスワードファイル)をできるだけ含めたくないものですが、ビルドフォルダにいくつかのファイルを残していることを忘れてビルドを起動してしまうこともあるでしょう。これは、どんなに優れた人でも起こり得ることです。

最後に、.dockerignore ファイルはキャッシュの無効化に役立ちます。Docker ビルドコンテキスト内でファイルやフォルダをコピーするには、COPY 命令を使用するのが一般的です。しかし、Dockerfile 内の各ステートメントは、新しい中間イメージレイヤーを構築します。そのため、Dockerfile に何度も変更を加えると、キャッシュの無効化が複数回発生し、貴重なリソースを無駄にする可能性があります。

それでは、.dockerignore ファイルの使い方と、そのファイルに含めることができる項目の種類について見ていきましょう。

.dockerignoreファイルの使い方

これは本当に簡単です。Dockerビルドフォルダに、次のコマンドでファイルを作成します。

nano .dockerignore

このファイル内に、Docker が無視する項目を 1 行に 1 つずつリスト化します。つまり、このファイルには次のような内容が含まれます。

#Ignore passwords file
passwords.txt

#ログディレクトリ
logs/を無視

#gitとcacheフォルダを無視します
。.git
.cache

#すべてのマークダウンとクラスファイルを無視
*.md
**/*.class

これはかなりしっかりした.gitignoreファイルです。しかし、何らかの理由で.isoイメージを扱っていて(おそらくベースイメージを.isoイメージからビルドしているのでしょう)、そのイメージを誤ってビルドフォルダに残してしまったとしましょう。そうすると、処理時間が大幅に長くなり、結果として生成されるイメージのサイズもかなり大きくなる可能性があります。これを避けるため、次のようにISOイメージを.dockerignoreファイルに追加しましょう。

#Ignore passwords file
passwords.txt

#ログディレクトリ
logs/を無視

#gitとcacheフォルダを無視します
。.git
.cache

#すべてのマークダウンとクラスファイルを無視
*.md
**/*.class

#ISO イメージを無視
*.iso

これで、ビルドプロセスを実行する際に、.dockerignore ファイルに追加した内容がビルドに反映される心配がなくなります。しっかりとした.dockerignore ファイルを作成すれば、ビルド間で移動させることも可能です(ただし、特定のユースケースに基づいて ignore ファイルを作成する場合は除きます)。

これは、Dockerビルドの効率とセキュリティを少し向上させる素晴らしい(そして簡単な)方法です。今すぐ.dockerignoreファイルを使い始めてください…きっと満足していただけるはずです。

Jack Wallen によるビジネス プロフェッショナル向けの最新のテクノロジー アドバイスをすべて知るには、YouTube で TechRepublic の How To Make Tech Work を購読してください。

Tagged: