すべてのプロダクト
Search
ドキュメントセンター

Platform For AI:DSW で Docker を使用

最終更新日:May 20, 2026

DSW では、インスタンスのメインコンテナ内で Docker コマンドを使用して、セカンダリコンテナ (サブコンテナ) を起動および管理できます。

グラフィカルユーザーインターフェースでセカンダリコンテナを起動するには、「Manage Sub-containers with DockerBoard」をご参照ください。

制限事項

  • セカンダリコンテナ機能は、Lingjun リソースグループ、またはバージョン 1.0 の汎用リソースグループから作成した DSW インスタンスでのみ利用できます。

  • DSW インスタンスのセカンダリコンテナでは、Docker デーモン設定 (/etc/docker/daemon.json) を現在変更できません。これは、data-rootregistry-mirrors などの設定オプションをカスタマイズできないことを意味します。

  • インスタンスを再起動すると、クラウドディスク機能が有効であっても、ビルド済みイメージを含むセカンダリコンテナ内のすべての実行時データが削除されます。データ損失を防ぐため、重要な環境とデータは定期的に保存することを推奨します。

  • セカンダリコンテナの起動時に、昇格された特権を付与する、またはセキュリティリスクとなるパラメータは使用できません。次の表に、一般的な制限対象パラメータの一部を示します:

    パラメータ

    説明

    --privileged

    コンテナにホストマシンのほぼすべての権限を付与します。

    --ipc=host

    ホストの IPC 名前空間をコンテナと共有します。

    --security-opt

    コンテナのセキュリティポリシーを回避または変更できるようにします。

    --cap-add

    Linux カーネルケーパビリティをコンテナに追加し、権限の範囲を拡張します。

    説明

    docker run または docker create を使用してセカンダリコンテナを作成する際に、次のエラーメッセージ Error response from daemon: authorization denied by plugin authZ: Permission denied が表示された場合、制限されたパラメーターが使用されたことを示します。

DSW インスタンスの作成と設定

DSW インスタンスを作成する際は、次の主要パラメータを設定します。

OK をクリックしてインスタンスを作成します。 次のステップについては、「セカンダリコンテナの使用」をご参照ください。

セカンダリコンテナの操作

セカンダリコンテナの起動

次のコマンドを実行して、セカンダリコンテナを起動して入ります:

docker run -it dsw-registry.cn-hangzhou.cr.aliyuncs.com/pai/pytorch:1.8PAI-gpu-py36-cu101-ubuntu18.04 /bin/bash

デバイスのマウント:

  • GPU のマウント: --gpus=all を使用すると、DSW インスタンスのすべての GPU デバイスをマウントできます。

  • PPU のマウント: GPU のマウントとは異なり、--device パラメーターを使用して PPU デバイスをセカンダリコンテナに手動でマウントする必要があります。コマンドは次のとおりです。

    docker run -it --network=host \
      --device=/dev/alixpu_ppu0 \
      --device=/dev/alixpu \
      --device=/dev/alixpu_ctl \
      your-ppu-enabled-image
    説明

    PPU を使用するには、セカンダリコンテナのイメージに必要な PPU コンポーネントが事前にインストールされている必要があります。

データのマウント:

Docker Bind Mount を使用して、セカンダリコンテナにデータをマウントしてアクセスできます。 データは、まず Dataset Mounting または Storage Path Mounting を使用して DSW インスタンスにマウントされます (ボリュームマウントと tmpfs マウントは現在サポートされていません)。 たとえば、この DSW インスタンスでは、データが /mnt/data0 パスと /mnt/data1 パスにマウントされています。 -v パラメーターまたは --mount パラメーターを使用して、/mnt/data0 パスと /mnt/data1 パスをセカンダリコンテナにバインドマウントできます:

# この例では、<path_in_dsw> は /mnt/data0、/mnt/data1、またはそれらのサブパスにすることができます。
# それ以外のパスは、現時点ではセカンダリコンテナにマウントできません。

# -v パラメータを使用
docker run -v <path_in_dsw>:<path_in_secondary_container>[:options] {image}

# --mount パラメータを使用
docker run  --mount type=bind,source=<path_in_dsw>,target=<path_in_secondary_container>[,readonly] {image}

セカンダリコンテナへのアクセス

docker exec コマンドを使用すると、実行中のコンテナで新しいコマンドプロセスを開始できます。

たとえば、インタラクティブモード (-i) で bash シェルを起動し、疑似ターミナル (-t) を割り当てるには、次のコマンドを使用できます。

docker exec -it your-container /bin/bash
説明

現在、--privileged のような、セキュリティリスクのあるパラメーターを使用してコンテナに入ることはできません。

docker attach コマンドを使用して、実行中のコンテナ内のメインプロセスのターミナルにアタッチすることもできます。 コンテナの標準入力を開いた状態 (-i) と疑似 TTY を割り当てた状態 (-t) でコンテナを起動すると、コンテナの標準入出力 (stdin/stdout/stderr) を表示して対話することができます。 具体的な手順は次のとおりです。

docker attach {container_id}
説明

コンテナを停止せずにデタッチするには、既定のエスケープシーケンスを使用します:Ctrl+p、続けて Ctrl+q。

イメージのビルド

DSW インスタンスでは、Dockerfile を使用してイメージをビルドできます。次のコマンドを実行します:

docker build -t test-build .
説明

ネットワーク制限により、Docker Hub からイメージを直接プルできません。FROM 命令のベースイメージとして Alibaba Cloud Container Registry (ACR) のイメージを使用することを推奨します。

ビルドが完了したら、次のコマンドを実行して新しく作成したイメージを確認します:

root@dsw-330808-8445dd65f4-mhnrt:/mnt/workspace/test# docker image ls
REPOSITORY          TAG         IMAGE ID       CREATED              SIZE
test-build          latest      fad7fdb5e81a   About a minute ago   15.4GB

イメージのプル

たとえば、ACR からパブリックイメージをプルするには、次のコマンドを実行します:

docker pull dsw-registry.cn-hangzhou.cr.aliyuncs.com/pai/pytorch:1.8PAI-gpu-py36-cu101-ubuntu18.04

プライベートリポジトリからイメージをプルするには、最初に docker login コマンドでログインします:

docker login --username={username} registry.cn-hangzhou.aliyuncs.com

よくある質問

Q:DSW インスタンスで ps -aux コマンドを実行しても、セカンダリコンテナのプロセスが表示されないのはなぜですか?

DSW ではメインコンテナとセカンダリコンテナで pid 名前空間を共有しないため、セカンダリコンテナ内で実行中のプロセスはメインコンテナからは表示されません。

Q:Docker Hub からのイメージのプルが失敗するのはなぜですか?

ネットワーク制限により、Docker Hub からイメージを直接プルすると失敗します。次のようなエラーが表示されます:

root@dsw-381955:/mnt/workspace# docker run --network=host -it ubuntu /bin/bash
Unable to find image 'ubuntu:latest' locally
docker: Error response from daemon: Get "https://registry-1.docker.io/v2/": context deadline exceeded.
See 'docker run --help'.

代わりに、Alibaba Cloud Container Registry (ACR) の Artifact Center からイメージをプルしてください。別の方法として、「Cross-domain pull of overseas models or container images」もご参照ください。

Q:"Error response from daemon: authorization denied by plugin authZ: Permission denied" というエラーが表示された場合はどうすればよいですか?

このエラーは、サポートされていない Docker コマンドまたはパラメータを使用した場合に発生します。サポートが必要な場合は、テクニカルサポートにチケットを送信してください。

Q:"Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?" というエラーが表示された場合はどうすればよいですか?

DSW インスタンスに /var/docker/proxy/docker-proxy.sock ファイルが存在するかどうかを確認してください。存在する場合は、次のコマンドを実行してから再試行してください:

export DOCKER_HOST=unix:///var/docker/proxy/docker-proxy.sock

環境変数を設定した後、Docker コマンドを再度実行してください。