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

Platform For AI:DSWでのDockerの使用

最終更新日:Sep 10, 2026

DSW インスタンスのメインコンテナで Docker コマンドを実行して、セカンダリコンテナ (サブコンテナとも呼ばれます) を起動および管理します。

グラフィカルユーザーインターフェイスでセカンダリコンテナを起動する方法については、「DockerBoardでのセカンダリコンテナの管理」をご参照ください。

制限事項

  • セカンダリコンテナは、Lingjun リソースグループまたは汎用リソースグループで作成された DSW インスタンスでのみサポートされます。

  • DSW インスタンスでは、セカンダリコンテナの Docker デーモン設定 (/etc/docker/daemon.json) は変更できません。このため、data-root や registry-mirrors などの設定項目はカスタマイズできません。

  • DSW インスタンスを再起動すると、クラウドディスク機能が有効になっているかどうかにかかわらず、構築したランタイムイメージを含むセカンダリコンテナ内のランタイムデータは失われます。データの損失を防ぐために、重要な環境とデータは定期的に保存してください。

  • Docker でセカンダリコンテナを起動する際、特権を付与したり、セキュリティリスクをもたらしたりするパラメーターは使用できません。以下の表は、一般的な制限付きパラメーターの一覧です。

パラメーター

説明

--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 インスタンスを作成する際は、以下の主要なパラメーターを設定します。他のパラメーターは必要に応じて設定してください。

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

DSW インスタンスが作成された後、そのメインコンテナで Docker コマンドを実行してセカンダリコンテナを起動および管理します。

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

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

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

セカンダリコンテナへのデバイスのマウント

  • GPU — DSW インスタンスのすべての GPU デバイスをマウントするには、--gpus=all を使用します。

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

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

セカンダリコンテナのランタイムイメージには、PPU が必要とするコンポーネントが事前にインストールされている必要があります。そうでない場合、PPU は使用できません。

セカンダリコンテナへのデータのマウント

Docker のバインドマウントを使用して、セカンダリコンテナ内のデータにアクセスします。データセットのマウント または ストレージパスのマウント を使用して DSW インスタンスにデータをマウントし、その後セカンダリコンテナにマウントします。ボリュームマウントと tmpfs マウントはサポートされていません。

例えば、DSW インスタンスの /mnt/data0 と /mnt/data1 にデータがマウントされている場合、-v パラメーターまたは --mount パラメーターを使用して、データをセカンダリコンテナーにバインドマウントします:

# この例では、<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) で、疑似ターミナルを割り当て (-t)、bash シェルを起動するには、次のコマンドを実行します。

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

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

また、docker attach コマンドを使用して、実行中のコンテナ内のメインプロセスのターミナルにアタッチすることもできます。コンテナを標準入力が開いた状態 (-i) および疑似ターミナルが割り当てられた状態 (-t) で起動した場合、コンテナの標準入出力 (stdin/stdout/stderr) を表示および操作できます:

docker attach {container_id}
説明

コンテナを停止せずにアタッチモードを終了するためのデフォルトのキーボードショートカットは、Ctrl + p の後に Ctrl + q です。コンテナのターミナルからデタッチされ、コンテナは実行を継続します。

イメージのプル

ネットワークの制限により、Docker Hub から直接イメージをプルすることはできません。代わりに Alibaba Cloud Container Registry (ACR) からイメージをプルしてください。Docker Hub からのイメージのプルが失敗した場合のエラー詳細については、「FAQ」をご参照ください。

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

イメージのビルド

DSW インスタンスでは、Dockerfile を使用してランタイムイメージをビルドできます。

docker build -t test-build .
説明

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.4 GB

よくある質問

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 からイメージをプルしてください。手順については、「イメージのプル」をご参照ください。または、「海外モデルまたはコンテナイメージのクロスドメインプル」をご参照ください。

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 コマンドを再度実行してください。