Dockerとは
Docker(ドッカー)とは、コンテナ型仮想化技術を利用したオープンソースのプラットフォームです。アプリケーションとその依存関係をDockerイメージとしてパッケージ化し、どの環境でも同一の動作を保証します。2013年に登場して以来、ソフトウェア開発とデプロイの方法を根本的に変革しました。
| ひとことで言うと | コンテナを作って動かす、最も普及したソフトウェア。 |
|---|---|
| どこで使う | AI開発環境の統一、本番環境への配備、チーム間の環境共有。 |
| 注意点 | GPUを使うにはNVIDIA Container Toolkitなどの追加設定が必要。 |
Dockerの基本概念
Dockerの主要な概念は、Dockerfile(イメージの設計図)、Dockerイメージ(実行環境のスナップショット)、Dockerコンテナ(イメージから起動した実行インスタンス)、Docker Hub(イメージの共有レジストリ)です。Dockerfileにコマンドを記述し、docker buildでイメージを構築、docker runでコンテナを起動します。
1Dockerfileを書く環境の作り方を記述
▶
2イメージをビルド実行可能な雛形に
▶
3コンテナとして起動隔離された環境で実行
▶
4配布・共有レジストリ経由で配る
AI開発でのDocker活用
AI開発ではDockerが標準的な開発環境として定着しています。NVIDIA が提供するNGC(NVIDIA GPU Cloud)カタログには、PyTorch、TensorFlow、TensorRTなどの最適化済みDockerイメージが用意されています。これらを利用することで、GPU環境の構築を大幅に簡略化できます。
Docker Compose とマルチコンテナ
Docker Composeを使えば、複数のコンテナ(モデルサーバー、データベース、監視ツールなど)を一括で管理できます。開発環境のセットアップがdocker-compose up一つのコマンドで完了し、チーム間での環境統一が容易になります。本番環境ではKubernetesへの移行が一般的です。