Todos os produtos
Search
Central de documentação

Platform For AI:Uso do Docker no DSW

Última atualização: Sep 09, 2026

Execute comandos do Docker no contêiner principal de uma instância do DSW para iniciar e gerenciar contêineres secundários, também conhecidos como subcontêineres.

Para iniciar subcontêineres com interface gráfica, consulte Manage Sub-containers with DockerBoard.

Limitações

  • Subcontêineres são suportados apenas em instâncias do DSW criadas com grupos de recursos Lingjun ou grupos de recursos de uso geral.

  • Não é possível modificar a configuração do Docker Daemon (/etc/docker/daemon.json) dos contêineres secundários em uma instância do DSW. Portanto, não é possível personalizar itens de configuração como data-root e registry-mirrors.

  • Ao reiniciar uma instância do DSW, os dados de runtime dos contêineres secundários, incluindo as imagens de runtime criadas, são perdidos. Isso ocorre independentemente da ativação do recurso de disco em nuvem. Para evitar perda de dados, salve regularmente seus ambientes e dados importantes.

  • Ao iniciar um contêiner secundário com o Docker, não use parâmetros que concedam privilégios elevados ou representem riscos de segurança. A tabela a seguir lista os parâmetros restritos comuns:

Parâmetro

Descrição

--privileged

Concede ao contêiner quase todas as permissões do host.

--ipc=host

Compartilha o namespace IPC do host.

--security-opt

Permite que o contêiner ignore ou modifique políticas de segurança.

--cap-add

Adiciona capacidades do kernel Linux ao contêiner e expande seu escopo de permissões.

Nota

Se você receber o erro Error response from daemon: authorization denied by plugin authZ: Permission denied ao executar docker run ou docker create para criar um contêiner secundário, significa que você usou um parâmetro restrito.

Crie e configure uma instância do DSW

Ao criar uma instância do DSW, defina os seguintes parâmetros principais. Configure os demais parâmetros conforme necessário:

Trabalhe com contêineres secundários

Após criar a instância do DSW, execute comandos do Docker no contêiner principal para iniciar e gerenciar os contêineres secundários.

Inicie um contêiner secundário

Execute o comando a seguir para iniciar e acessar um contêiner secundário:

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

Monte dispositivos em um contêiner secundário

  • GPUs: Use --gpus=all para montar todos os dispositivos GPU da instância do DSW.

  • PPUs: Diferentemente das GPUs, os dispositivos PPU devem ser montados manualmente no contêiner secundário usando o parâmetro --device:

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

A imagem de runtime do contêiner secundário deve ter os componentes necessários para a PPU pré-instalados. Caso contrário, não será possível usar a PPU.

Monte dados em um contêiner secundário

Use o Docker Bind Mount para acessar dados em um contêiner secundário. Monte os dados na instância do DSW usando Dataset Mounting ou Storage Path Mounting e, em seguida, monte-os no contêiner secundário. Volume Mount e tmpfs Mount não são suportados.

Por exemplo, se a instância do DSW tiver dados montados em /mnt/data0 e /mnt/data1, use o parâmetro -v ou --mount para vincular esses dados ao contêiner secundário:

# In this example, <path_in_dsw> can be /mnt/data0, /mnt/data1, or their subpaths.
# Other paths cannot be mounted to the secondary container for now.

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

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

Acesse um contêiner secundário

Use o comando docker exec para iniciar um novo processo de comando em um contêiner em execução.

Por exemplo, para iniciar um shell bash em modo interativo, com entrada padrão aberta (-i) e pseudoterminal alocado (-t), execute o seguinte comando:

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

Atualmente, não é possível usar parâmetros que representem risco de segurança, como --privileged, para acessar um contêiner.

Você também pode usar o comando docker attach para se conectar ao terminal do processo principal de um contêiner em execução. Se você iniciou o contêiner com entrada padrão aberta (-i) e pseudoterminal alocado (-t), poderá visualizar e interagir com as entradas e saídas padrão (stdin/stdout/stderr) do contêiner:

docker attach {container_id}
Nota

O atalho de teclado padrão para sair do modo attach sem parar o contêiner é Ctrl + p seguido de Ctrl + q. Você será desconectado do terminal do contêiner, mas ele continuará em execução.

Baixe imagens

Devido a restrições de rede, não é possível baixar imagens diretamente do Docker Hub. Em vez disso, baixe imagens do Alibaba Cloud Container Registry (ACR). Se o download de uma imagem do Docker Hub falhar, consulte FAQ para detalhes sobre o erro.

Para baixar uma imagem pública do ACR, execute o seguinte comando:

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

Para baixar uma imagem de um repositório privado, execute primeiro o comando docker login para fazer login:

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

Crie uma imagem

Em uma instância do DSW, use um Dockerfile para criar uma imagem de runtime:

docker build -t test-build .
Nota

Ao especificar uma imagem base com a instrução FROM, use uma imagem do Alibaba Cloud Container Registry (ACR). Para obter instruções, consulte Pull images.

Após concluir a criação, execute o comando a seguir para visualizar a imagem:

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

Perguntas frequentes

P: Por que os processos dos contêineres secundários não aparecem ao executar o comando ps -aux em uma instância do DSW?

O contêiner principal e os contêineres secundários em uma instância do DSW não compartilham o mesmo namespace PID. Por isso, os processos dos contêineres secundários não ficam visíveis a partir do contêiner principal.

P: Por que o download de imagens do Docker Hub falha?

Devido a restrições de rede, o download direto de imagens do Docker Hub falha. Você receberá o seguinte erro:

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

Como alternativa, baixe imagens do Artifact Center do Alibaba Cloud Container Registry (ACR). Para obter instruções, consulte Pull images. Ou então, consulte Cross-domain pull of overseas models or container images.

P: O que fazer ao receber o erro "Error response from daemon: authorization denied by plugin authZ: Permission denied"?

Isso indica o uso de um comando ou parâmetro do Docker não suportado. Em caso de dúvidas, abra um ticket para entrar em contato com o suporte técnico.

P: O que fazer ao receber o erro "Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?"

Verifique se o arquivo /var/docker/proxy/docker-proxy.sock existe na instância do DSW. Caso exista, execute o seguinte comando:

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

Em seguida, execute novamente o comando do Docker.