ascend-docker
Create Docker containers for Huawei Ascend NPU development with proper device mappings and volume mounts. Use when setting up Ascend development environments in Docker, running CANN applications in containers, or creating isolated NPU development workspaces. Supports privileged mode (default), basic mode, and full mode with profiling/logging. Auto-detects available NPU devices.
How do I install this agent skill?
npx skills add https://github.com/ascend/agent-skills --skill ascend-dockerIs this agent skill safe to install?
- Gen Agent Trust Hubfail
This skill creates Docker containers for Ascend NPU development with high-privilege settings (privileged mode) and broad volume mounts that expose the host's /home directory. It also contains a shell injection vulnerability due to unquoted variables in its container creation script.
- Socketwarn
1 alert: gptSecurity
- Snykpass
Risk: LOW · No issues
What does this agent skill do?
Ascend Docker Container
Create Docker containers configured for Huawei Ascend NPU development.
Quick Start
# Privileged mode (default, auto-detect all devices)
./scripts/run-ascend-container.sh <image> <container_name>
# Basic mode with specific devices
./scripts/run-ascend-container.sh <image> <container_name> --mode basic
# Full mode with selected devices
./scripts/run-ascend-container.sh <image> <container_name> --mode full --device-list "0,1,2,3"
Device Selection
The script auto-detects available NPU devices from /dev/davinci*. Use --device-list to select specific devices:
# Use all detected devices (default)
./scripts/run-ascend-container.sh <image> <container_name>
# Use specific devices
./scripts/run-ascend-container.sh <image> <container_name> --device-list "0,1,2,3"
# Use device range
./scripts/run-ascend-container.sh <image> <container_name> --device-list "0-3"
# Combine ranges and individual devices
./scripts/run-ascend-container.sh <image> <container_name> --device-list "0-3,7,10-11"
Check available devices:
ls /dev/davinci* | grep -oE 'davinci[0-9]+$'
Container Modes
1. Privileged Mode (Default)
Maximum permissions, suitable when no specific requirements.
docker run -itd --privileged --name=<CONTAINER_NAME> --ipc=host --net=host \
--device=/dev/davinci_manager \
--device=/dev/devmm_svm \
--device=/dev/hisi_hdc \
-v /usr/local/sbin:/usr/local/sbin:ro \
-v /usr/local/Ascend/driver:/usr/local/Ascend/driver:ro \
-v /home:/home \
-w /home \
<IMAGE> \
/bin/bash
2. Basic Mode
Specific device mapping with network host, for inference workloads.
docker run -itd --net=host \
--name=<CONTAINER_NAME> \
--device=/dev/davinci_manager \
--device=/dev/hisi_hdc \
--device=/dev/devmm_svm \
--device=/dev/davinci0 \
--device=/dev/davinci1 \
... \
-v /usr/local/Ascend/driver:/usr/local/Ascend/driver:ro \
-v /usr/local/sbin:/usr/local/sbin:ro \
-v /etc/localtime:/etc/localtime \
-v /home:/home \
<IMAGE> \
/bin/bash
3. Full Mode
With profiling, logging, dump, and add-ons support.
docker run -itd --ipc=host \
--name=<CONTAINER_NAME> \
--device=/dev/davinci_manager \
--device=/dev/devmm_svm \
--device=/dev/hisi_hdc \
--device=/dev/davinci0 \
--device=/dev/davinci1 \
... \
-v /usr/local/Ascend/driver:/usr/local/Ascend/driver \
-v /usr/local/Ascend/add-ons/:/usr/local/Ascend/add-ons/ \
-v /usr/local/sbin/npu-smi:/usr/local/sbin/npu-smi \
-v /usr/local/sbin/:/usr/local/sbin/ \
-v /var/log/npu/conf/slog/slog.conf:/var/log/npu/conf/slog/slog.conf \
-v /var/log/npu/slog/:/var/log/npu/slog \
-v /var/log/npu/profiling/:/var/log/npu/profiling \
-v /var/log/npu/dump/:/var/log/npu/dump \
-v /var/log/npu/:/usr/slog \
-v /etc/localtime:/etc/localtime \
-v /home:/home \
<IMAGE> \
/bin/bash
Mode Comparison
| Feature | Privileged | Basic | Full |
|---|---|---|---|
| Network mode | host | host | - |
| IPC mode | host | - | host |
| Device access | All (via privileged) | Selected devices | Selected devices |
| Profiling support | ✓ | ✗ | ✓ |
| Dump support | ✓ | ✗ | ✓ |
| Logging (slog) | ✓ | ✗ | ✓ |
| Security | Lowest | Higher | Higher |
Device Parameters
| Device | Purpose |
|---|---|
/dev/davinci_manager | NPU device manager |
/dev/devmm_svm | Device memory management |
/dev/hisi_hdc | HDC communication device |
/dev/davinci<N> | Individual NPU devices (0, 1, 2, ...) |
Volume Parameters
| Volume | Purpose |
|---|---|
/usr/local/Ascend/driver | Ascend driver libraries |
/usr/local/sbin | NPU management tools (npu-smi) |
/usr/local/Ascend/add-ons | Additional Ascend components |
/var/log/npu/slog | System logs |
/var/log/npu/profiling | Profiling data |
/var/log/npu/dump | Dump data |
/etc/localtime | Timezone sync |
/home | User workspace |
Common Images
ascendhub.huawei.com/public-ascendhub/ascend-pytorch:24.0.RC1
ascendhub.huawei.com/public-ascendhub/ascend-mindspore:24.0.RC1
ascendhub.huawei.com/public-ascendhub/ascend-toolkit:24.0.RC1
Container Management
docker exec -it <container_name> bash
docker stop <container_name>
docker start <container_name>
docker rm -f <container_name>
Post-Setup
For self-built images, configure environment variables:
echo 'source /usr/local/Ascend/ascend-toolkit/set_env.sh' >> ~/.bashrc
source ~/.bashrc
Official References
How can the creator link this skill?
Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.
<a href="https://skillzs.dev/skills/ascend/agent-skills/ascend-docker">View ascend-docker on skillZs</a>