Uso do Docker na competição Tianchi

Processo de uso de competição do Docker

Você pode aprender com o seguinte tutorial introdutório: https://tianchi.aliyun.com/competition/entrance/231759/tab/226

Aqui está uma explicação detalhada: https://www.cnblogs.com/shayue/p/12364155.html

1. Estabeleça o Alibaba Cloud Image Warehouse

Primeiro crie um armazém privado em https://cr.console.aliyun.com/cn-shanghai/instances/repositories e defina o namespace. Clique na página de gerenciamento à direita para ver algumas operações comuns, como fazer login em sua conta, extrair imagens, enviar imagens, etc.

# 登陆账号
$ sudo docker login --username=火星娃勇闯魔晶岛 registry.cn-shanghai.aliyuncs.com
# 从registry拉取镜像
$ sudo docker pull registry.cn-shanghai.aliyuncs.com/hxm_docker_test/mmdet_tc_2021:[镜像版本号]
# 推送到registry
$ sudo docker login --username=火星娃勇闯魔晶岛 registry.cn-shanghai.aliyuncs.com
$ sudo docker tag [ImageId] registry.cn-shanghai.aliyuncs.com/hxm_docker_test/mmdet_tc_2021:[镜像版本号]
$ sudo docker push registry.cn-shanghai.aliyuncs.com/hxm_docker_test/mmdet_tc_2021:[镜像版本号]

2. Configure o espelhamento local

  1. Primeiro crie uma pasta de envio

    Isso precisa ser projetado de acordo com os requisitos da competição (geralmente incluindo Dockerfile (nome fixo), run.sh, result.json, etc.)

    O design do Dockerfile é o seguinte:

    # Base Images
    ## 从天池基础镜像构建
    FROM registry.cn-shanghai.aliyuncs.com/tcc-public/python:3
    # 这个时ali的镜像列表
    # https://tianchi.aliyun.com/forum/postDetail?spm=5176.12586973.0.0.28cd6448z1i5oZ&postId=67720
    
    
    ## 把当前文件夹里的文件构建到镜像的根目录下
    ADD . /
    
    ## 指定默认工作目录为根目录(需要把run.sh和生成的结果文件都放在该文件夹下,提交后才能运行)
    WORKDIR /
    
    

Depois que a imagem for iniciada, execute sh run.sh uniformemente.

CMD [“sh”, “run.sh”]

run.sh的设计如下:
   python hello_world.py

3. Teste de espelhamento local

  1. Primeiro crie um espelho ( registry.~~~este é o seu endereço de rede pública, substitua-o pelo seu próprio endereço de armazém, que :1.0é o número da versão)

    docker build -t registry.cn-shenzhen.aliyuncs.com/test_for_tianchi/test_for_tianchi_submit:1.0 .
    

    Você pode encontrar alguns problemas aqui:

    • Se você não estiver logado em sua conta, faça login com o comando em uso e carregue-o novamente.登陆账号

    • Números de versão duplicados farão com que a imagem anterior TAGseja alterada <none>. Portanto, se a imagem anterior não for mais necessária, exclua-a a tempo. O comando de exclusão é o seguinte:

      docker rmi IMAGE ID
      # 如果遇到无法删除的情况,那么先用如下命令查看一下container在占用
      docker ps -a 
      #完了用如下命令删除对应的containrer
      docker rm CONTAINER ID
      
  2. Depois de construir a imagem, você pode usar o seguinte comando para testá-la e ver se há algum problema.

    Imagem da CPU : Imagem docker run your_image sh run.sh
    da GPU : (a ser verificada)

    # 使用所有GPU
    $ docker run --gpus all nvidia/cuda:9.0-base nvidia-smi
    
    # 使用两个GPU
    $ docker run --gpus 2 nvidia/cuda:9.0-base nvidia-smi
    
    # 指定GPU运行
    $ docker run --gpus '"device=1,2"' nvidia/cuda:9.0-base nvidia-smi
    

4. Carregar imagem local

  1. Se não houver problemas antes, basta carregá-lo em seu próprio warehouse.

    docker push registry.cn-shenzhen.aliyuncs.com/test_for_tianchi/test_for_tianchi_submit:1.0
    
    • Se você encontrar uma falha no upload, talvez você não esteja conectado à sua conta. Faça login usando o comando em questão e faça upload novamente.登陆账号

5. Envio dos resultados da competição

  1. Basta configurar seu próprio caminho de imagem, nome de usuário e senha.insira a descrição da imagem aqui

6. Comandos comumente usados

# 查看docker 列表
docker images
# 查看容器列表
docker ps -a
# 启动,进入docker 使用bash方式
dockers run -it IMAGE ID  /bin/bash
# 删除容器
docker rm CONTAINER ID
# 退出镜像
exit
# 进入容器
docker attach CONTAINER ID
# 把容器保存成镜像
docker commit CONTAINER ID  REPOSITY_NAME:TAG
# GPU运行docker
docker run --gpus  '"device=3"' -it --name  hxm_test(CONTAINER_NAME)  IMAGE_ID  /bin/bash

Acho que você gosta

Origin blog.csdn.net/qq_36306288/article/details/114916084
Recomendado
Clasificación