Google、Dockerデーモンに依存せずコンテナイメージをビルドできる「kaniko」オープンソースで公開
Googleは、Dockerデーモンに依存せず、ユーザー空間内でDockerfileからコンテナイメージをビルドできるツール「kaniko」をオープンソースで公開しました。
通常、Dockerfileからコンテナイメージをビルドするには、Dockerデーモンにアクセスする必要があります。Dockerデーモンは実行にルート権限を必要とするため、ルート権限に簡単にアクセスできない環境、例えばKubernetesクラスタ内のDockerコンテナ環境などではコンテナイメージのビルドが難しいとされてきました。
オープンソースで公開されたツール「kaniko」は、この課題を解決するために開発されたとGoogleは説明しています。
With kaniko, we both build an image from a Dockerfile and push it to a registry. Since it doesn’t require any special privileges or permissions, you can run kaniko in a standard Kubernetes cluster, Google Kubernetes Engine, or in any environment that can’t have access to privileges or a Docker daemon.
kanikoを用いることで、(ルート権限へのアクセスがあってもなくても)どちらでもDockerfileからコンテナイメージをビルドし、レジストリへプッシュできます。というのも、kanikoは特権的なアクセス権限を必要とせず、標準的なKubernetesクラスタやGoogle Kubernetes Engineやそのほか特権的なアクセス権限やDockerデーモンにアクセスできないあらゆる環境でも実行できるからです。
Dockerデーモンに依存せずにコンテナイメージをビルドできるツールはすでにimgとorca-buildなどがあります。下記では、kanikoがこの2つとどのように異なるのかについて説明されています。
The img tool builds as an unprivileged user within a container, while kaniko builds as a root user within a container in an unprivileged environment. The orca-build tool executes builds by wrapping runc, which uses kernel namespacing techniques to execute RUN commands. We're able to accomplish the same thing in kaniko by executing commands as a root user within a container.
imgツールはコンテナ内で非特権ユーザーとしてビルドを行いますが、kanikoは非特権環境においてコンテ内でルートユーザーとしてビルドします。orca-buildツールはruncをラッピングすることによりビルドを実行します。これはRUNコマンドを実行するためのカーネル名前空間のテクニックです。私たちもkanikoで同様のことをコンテナ内でルートユーザーとしてコマンドを実行するために行っています。
カテゴリ Docker / コンテナ / 仮想化
タグ Docker , Google , Kubernetes
あわせてお読みください
- パスワードに依存しない認証「WebAuthn」をChrome/Firefox/Edgeが実装開始、W3Cが標準化。Webはパスワードに依存しないより安全で便利なものへ
- Mozillaが「WebAssembly Studio」発表。C/Rust/AssemblyScript対応のオンラインIDE
- NGINX Unitが正式リリース。PHP、Go、Pythonなどに対応した軽量アプリケーションサーバ
- GoogleとNetflix、カナリアリリース分析ツール「Kayenta」オープンソースで公開。新たにデプロイしたリリースに問題がないかを自動分析
- Go言語がWebAssemblyをサポートへ。GOARCHは「wasm」、GOOSは「js」に
前の記事
Kubernetesを統合した「Docker Enterprise Edition 2.0」正式版リリース。コンテナランタイム、オーケストレーション、ネットワーク機能などを含む総合コンテナソリューション