All Products
Search
Document Center

Platform For AI:Gunakan Docker di DSW

Last Updated:May 20, 2026

DSW memungkinkan Anda menggunakan perintah Docker di dalam kontainer utama instans untuk menjalankan dan mengelola kontainer sekunder (sub-kontainer).

Untuk menjalankan sub-kontainer dengan antarmuka pengguna grafis, lihat Kelola Sub-kontainer dengan DockerBoard.

Batasan

  • Fitur kontainer sekunder hanya tersedia untuk instans DSW yang dibuat dari kelompok sumber daya Lingjun atau kelompok sumber daya serbaguna versi 1.0.

  • Konfigurasi Docker Daemon (/etc/docker/daemon.json) untuk kontainer sekunder saat ini tidak dapat dimodifikasi di instans DSW. Artinya, Anda tidak dapat menyesuaikan opsi konfigurasi seperti data-root dan registry-mirrors.

  • Me-restart instans akan menghapus semua data runtime di kontainer sekunder, termasuk gambar yang telah dibuat, meskipun fitur cloud disk diaktifkan. Untuk mencegah kehilangan data, kami menyarankan agar Anda secara berkala menyimpan lingkungan dan data penting Anda.

  • Saat menjalankan kontainer sekunder, Anda tidak dapat menggunakan parameter yang memberikan hak istimewa tinggi atau menimbulkan risiko keamanan. Tabel berikut mencantumkan beberapa parameter umum yang dibatasi:

    Parameter

    Description

    --privileged

    Memberikan hampir semua izin host machine kepada kontainer.

    --ipc=host

    Membagikan namespace IPC host dengan kontainer.

    --security-opt

    Memungkinkan melewati atau memodifikasi kebijakan keamanan kontainer.

    --cap-add

    Menambahkan kemampuan kernel Linux ke kontainer, sehingga memperluas cakupan izinnya.

    Catatan

    Jika Anda menemui pesan error berikut Error response from daemon: authorization denied by plugin authZ: Permission denied saat menggunakan docker run atau docker create untuk membuat kontainer sekunder, hal ini menunjukkan bahwa Anda menggunakan parameter yang dibatasi.

Buat dan konfigurasikan instans DSW

Saat membuat instans DSW, konfigurasikan parameter kunci berikut.

Klik OK untuk membuat instans. Untuk langkah selanjutnya, lihat Bekerja dengan kontainer sekunder.

Bekerja dengan kontainer sekunder

Jalankan kontainer sekunder

Jalankan perintah berikut untuk memulai dan masuk ke kontainer sekunder:

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

Memasang perangkat:

  • Memasang GPU: Anda dapat menggunakan --gpus=all untuk memasang semua perangkat GPU di instans DSW.

  • Memasang PPU: Berbeda dengan pemasangan GPU, Anda harus memasang perangkat PPU secara manual ke kontainer sekunder dengan menggunakan parameter --device. Perintahnya adalah sebagai berikut:

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

    Gambar kontainer sekunder harus telah memiliki komponen PPU yang diperlukan dalam kondisi pra-instal agar dapat menggunakan PPU.

Data pemasangan:

Anda dapat menggunakan Docker Bind Mount untuk memasang data ke dalam kontainer sekunder agar dapat diakses. Data tersebut terlebih dahulu dipasang ke instans DSW melalui Dataset Mounting atau Storage Path Mounting (Volume Mount dan tmpfs Mount saat ini tidak didukung). Misalnya, instans DSW ini memiliki data yang dipasang di path /mnt/data0 dan /mnt/data1. Anda dapat menggunakan parameter -v atau parameter --mount untuk melakukan Bind Mount path /mnt/data0 dan /mnt/data1 ke dalam kontainer sekunder:

# Dalam contoh ini, <path_in_dsw> dapat berupa /mnt/data0, /mnt/data1, atau subpath-nya.
# Path lain saat ini tidak dapat dipasang ke kontainer sekunder.

# Gunakan parameter -v
docker run -v <path_in_dsw>:<path_in_secondary_container>[:options] {image}

# Gunakan parameter --mount
docker run  --mount type=bind,source=<path_in_dsw>,target=<path_in_secondary_container>[,readonly] {image}

Akses kontainer sekunder

Anda dapat menggunakan perintah docker exec untuk menjalankan proses perintah baru di dalam kontainer yang sedang berjalan.

Misalnya, untuk menjalankan shell bash dalam mode interaktif (-i) dan mengalokasikan pseudo-terminal (-t), Anda dapat menggunakan perintah berikut:

docker exec -it your-container /bin/bash
Catatan

Saat ini, Anda tidak dapat menggunakan parameter yang menimbulkan risiko keamanan, seperti --privileged, untuk masuk ke kontainer.

Anda juga dapat menggunakan perintah docker attach untuk menyambungkan ke terminal proses utama dalam kontainer yang sedang berjalan. Jika Anda menjalankan kontainer dengan input standar terbuka (-i) dan pseudo-TTY dialokasikan (-t), Anda dapat melihat input/output standar kontainer (stdin/stdout/stderr) dan berinteraksi dengannya. Langkah-langkahnya adalah sebagai berikut:

docker attach {container_id}
Catatan

Untuk melepaskan diri dari kontainer tanpa menghentikannya, gunakan urutan escape default: Ctrl+p lalu Ctrl+q.

Buat gambar

Di dalam instans DSW, Anda dapat membuat gambar menggunakan Dockerfile. Jalankan perintah berikut:

docker build -t test-build .
Catatan

Karena pembatasan jaringan, Anda tidak dapat langsung menarik gambar dari Docker Hub. Kami menyarankan agar Anda menggunakan gambar dari Alibaba Cloud Container Registry (ACR) sebagai gambar dasar dalam instruksi FROM Anda.

Setelah proses build selesai, jalankan perintah berikut untuk melihat gambar yang baru dibuat:

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

Tarik gambar

Misalnya, untuk menarik gambar publik dari ACR, jalankan perintah berikut:

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

Untuk menarik gambar dari repositori pribadi, pertama-tama login dengan perintah docker login:

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

FAQ

Q: Mengapa saya tidak bisa melihat proses kontainer sekunder saat menjalankan perintah ps -aux di instans DSW?

Karena kontainer utama dan kontainer sekunder di DSW tidak berbagi namespace pid yang sama, proses yang berjalan di dalam kontainer sekunder tidak terlihat dari kontainer utama.

Q: Mengapa penarikan gambar dari Docker Hub gagal?

Penarikan gambar langsung dari Docker Hub gagal karena pembatasan jaringan. Anda akan melihat error seperti berikut:

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'.

Sebagai gantinya, tarik gambar dari Artifact Center di Alibaba Cloud Container Registry (ACR). Atau, lihat Penarikan lintas domain model atau gambar kontainer dari luar negeri.

Q: Apa yang harus saya lakukan jika melihat error "Error response from daemon: authorization denied by plugin authZ: Permission denied"?

Error ini terjadi ketika Anda menggunakan perintah atau parameter Docker yang tidak didukung. Untuk bantuan lebih lanjut, kirimkan tiket ke dukungan teknis.

Q: Apa yang harus saya lakukan jika melihat error "Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?"

Periksa apakah file /var/docker/proxy/docker-proxy.sock ada di instans DSW Anda. Jika ada, jalankan perintah berikut lalu coba lagi:

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

Setelah mengatur variabel lingkungan tersebut, jalankan kembali perintah Docker.