AI用語集・AIの社会実装に向けて

Dockerとは

ドッカー

別名:Dockerコンテナ

  • シラバス 技術35
  • ◯×チェック3問
  • 練習問題2問

最終更新日:作成:ウカトレ編集部(AIで作成し、別のAIが一次資料と照合)人による確認:未出典

1行定義

Dockerとは、アプリケーションと実行に必要なライブラリや設定をコンテナという単位にまとめ、別のマシンでも同じように動かせるようにするソフトウェアのことです。

くわしく

Dockerは、ソフトウェアを「コンテナ」という箱に詰めて動かすための仕組みです。箱には、プログラム本体だけでなく、動かすのに必要なライブラリとそのバージョン、設定までまとめて入ります。Dockerが動くマシンなら、手元のパソコンでもクラウドのサーバーでも、同じ箱をほぼ同じように動かせます。

AIプロジェクトで使われる理由

機械学習のプログラムは、Pythonのライブラリや深層学習のフレームワークなど、多くの部品の組み合わせで動きます。部品のバージョンが少し違うだけで、動かなくなったり結果が変わったりします。「開発者のパソコンでは動くのに、本番のサーバーでは動かない」問題が起きやすい分野です。

Dockerで実行環境ごとまとめれば、開発・検証・本番で同じ環境を再現できます。学習済みモデルをWeb APIとして提供するときも、推論のプログラムをコンテナにして配置する方法がよく使われます。MLOpsでも、実行環境をそろえて再現性を確保する手段の1つとして使われます。

主な用語

  • イメージ:コンテナを作るための読み取り専用のテンプレートです。一度作ると変更できません。
  • コンテナ:イメージから起動した、実際に動いている実行環境です。
  • Dockerfile:イメージを作る手順を書いたテキストファイルです。
  • レジストリ:イメージを保管して配布する場所です。公開のDocker Hubのほか、組織専用のものも用意できます。

仮想マシンとの違い

仮想マシンは、OSを丸ごと含む仮想的なコンピュータを動かします。コンテナはホストOSのカーネルを共有し、アプリケーションと必要な部品だけを分けて動かします。そのため一般に軽く、起動も速くなります。一方で、隔離の度合いは、OSごと分ける仮想マシンのほうが高いとされます。

覚え方

「環境ごと箱に詰めて運ぶから、どこでも同じに動く」と覚えます。

G検定での出題

出題のされ方

開発と本番で同じ実行環境を再現できるというAI開発での利点や、ホストOSのカーネルを共有するコンテナと仮想マシンとの違い、MLOpsでの役割が問われます。

◯×チェック

3問

次の文が正しいか、誤りかを選んでください。

  1. Dockerでは、元にするイメージや追加するライブラリなど、イメージを作る手順をDockerfileというテキストファイルに書いておく。

    答えを見る

    答え ◯ 正しい

    手順をファイルに残すため、同じ環境を何度でも作り直せます。Dockerfileをバージョン管理すれば、環境を変えた履歴も追えます。

  2. 起動したコンテナの中で追加のライブラリを入れると、その変更は元になったイメージにも自動で書き込まれる。

    答えを見る

    答え × 誤り

    イメージは一度作ると変更できない読み取り専用のテンプレートです。コンテナでの変更はそのコンテナの中にとどまるため、環境を変えるときはDockerfileを直してイメージを作り直します。

  3. Dockerのコンテナからはホストのコンピュータに載ったGPUを使えないため、深層学習の学習はコンテナの外で行う必要がある。

    答えを見る

    答え × 誤り

    NVIDIAのGPUであれば、ドライバとNVIDIA Container Toolkitを入れたうえで、コンテナの起動時に--gpusオプションを指定すると使えます。深層学習の環境をコンテナで配る例は多くあります。

この用語の練習問題

2問
  1. #0086運用中のモデル劣化への対応難易度 応用・単一選択未回答
  2. #0245Dockerとコンテナの特徴難易度 標準・単一選択未回答

出典

作成:ウカトレ編集部(AIで作成し、別のAIが一次資料と照合)人による確認:未 最終確認日: 対応シラバス:シラバス第1.4版 技術35

誤りを報告

表示設定

テーマ
文字の大きさ
問題演習