Docker Offload で開発業務を自動化する方法

開発者であれば誰でも、一度はローカル環境の限界にぶつかったことがあると思います。たとえば、AI モデルのトレーニングで CPU の負荷が限界に達したり、大規模なコードベースをコンパイルしてファンがジェット エンジンのように唸ったり、GPU を搭載していないノート PC で GPU ワークロードを実行しようとして苦労したりする場合です。結果はどれも同じで、ビルドが遅くなり、リソースが足りず、時間が無駄に過ぎていきます。

Docker Offload は、まさにこのような問題を解決するために開発されました。ハードウェアをアップグレードしたり、クラウド インフラをいちから構築したりする代わりに、Offload を使うことで、既存の Docker ワークフローをクラウドに拡張できます。これまでどおり docker builddocker run コマンドを使用しながら、その裏側では GPU を含む高性能なクラウド環境で処理が実行されます。

言い換えると、Offload は Docker に「ターボボタン」を追加するようなものです。いつもの開発体験はそのままに、パフォーマンスだけを大幅に向上させることができます。

Docker Offload とは

Docker Offload は、クラウド上で Docker のビルドやコンテナー実行できるマネージドサービスです。ローカル開発と同じような操作感を保ちながら、オンデマンドでクラウド リソースを利用できます。高速で安定したビルドや、GPU を必要とする LLM 実行、機械学習パイプラインなどの計算負荷の高いワークロードに最適です。

ローカル環境のハードウェア要件を満たせない場合や、クラウド リソースを柔軟に活用したい場合にも有効です。

Docker Offload を利用するメリット

Docker Offload は、ローカルとクラウドの両方を活用するモダンな開発チームを支援するために設計されています。
主なメリットは次のとおりです。

  • 負荷の高いビルドや実行を、高速かつスケーラブルなクラウド環境にオフロードできます。
  • 開発やテストのフィードバック サイクルを短縮できます。
  • ローカル環境のリソースを超えるコンテナーを実行できます。
  • Docker Compose を使用して、クラウド リソースを必要とする複雑なマルチサービス アプリを管理できます。

クラウドの柔軟性とローカル ツールのシンプルさを両立したい、高速な開発ワークフローに最適なソリューションです。

使い方

ステップ 1 ~ Docker Offload にサインアップする

Docker Offload を利用するには、サインアップしてサブスクリプションに登録する必要があります。

ステップ 2 ~ Docker Offload を起動する

  1. Docker Desktop を起動し、アカウントにサインインします。
  2. ターミナルを開き、次のコマンドを実行します。
    • $ docker offload start
  3. プロンプトが表示されたら、Docker Offload に使用する Docker アカウントを選択します。
    このアカウントのクレジットが Docker Offload の利用に消費されます。
  4. GPU サポートを有効にするかどうかを選択します。
    有効にした場合、NVIDIA L4 GPU を搭載したインスタンス上で Offload が実行され、機械学習や計算負荷の高い処理に活用できます。

注記:
GPU サポートを有効にするとコストが増加します。詳細は「Docker Offload の利用料金」をご覧ください。

ステップ 3 ~ コンテナーを実行する

Offload を起動すると、Docker Desktop が安全なクラウド環境に接続し、ローカルと同じような体験でリモート実行が可能になります。

動作を確認するには、次のコマンドを実行します。

$ docker run --rm hello-world

GPU サポートを有効にした場合は、次のコマンドも利用できます。

$ docker run --rm --gpus all hello-world

正常に動作していれば、ターミナルに
Hello from Docker!
と表示されます。

ステップ 4 ~ Docker Offload を停止する

利用を終えたら、次のコマンドで Offload を停止します。

$ docker offload stop

停止すると、コストの消費が止まり、数分後にクラウド上のワーカーが完全に破棄されます。停止後は、ローカル環境で通常どおりビルドやコンテナー実行が行われるようになります。再度利用する場合は、docker offload start コマンドを実行してください。

コストを削減する方法

Docker Offload はリモート環境でビルドを実行するため、ローカルマシンからクラウドへのファイル転送が発生します。ネットワーク越しの転送は、ローカル環境内での転送と比べてレイテンシが高く、帯域幅も制限されるため、パフォーマンスに影響する可能性があります。

この影響を最小限に抑えるために、Docker Offload には次のような最適化が組み込まれています。

  • ビルド キャッシュを高速に読み書きできるアタッチドストレージを利用します。
  • ローカル環境にビルド成果物を戻す際、前回から変更のあったファイルのみを転送します。

それでも、プロジェクトが大規模な場合やネットワーク速度が遅い場合には、転送時間が長くなることがあります。
以下のベスト プラクティスを参考に、Docker Offload 向けにビルド環境を最適化してください。

Dockerfile の一般的な最適化については、「Building best practices (ビルドのベストプラクティス)」をご参照ください。


エクセルソフトは Docker の Preferred Reseller として、Docker Desktop を販売しています。Docker 製品のライセンスや機能に関するご質問、製品デモのご要望を承っています。お問い合わせはこちらから。


*本記事は、Docker 社が提供している以下の記事から抜粋・転載したものです。

オフロードの開始: Docker を使用した日常のワークフローの自動化

Docker の最新情報をお届けするエクセルソフトのメールニュース登録はこちら

タイトルとURLをコピーしました