天池比赛的Docker使用

Docker比赛使用流程

可以借鉴下面的入门教程:https://tianchi.aliyun.com/competition/entrance/231759/tab/226

这是一个详细解释:https://www.cnblogs.com/shayue/p/12364155.html

一、建立阿里云镜像仓库

首先在https://cr.console.aliyun.com/cn-shanghai/instances/repositories建立一个私有仓库,定义命名空间。在右侧点击管理页面可以看到一些常用的操作,例如登陆账号、拉取镜像、推送镜像等等。

# 登陆账号
$ 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:[镜像版本号]

二、配置本地镜像

  1. 首先建立一个submission的文件夹

    这里需要根据比赛的要求来进行设计(一般包含Dockerfile(固定名称)、run.sh、result.json等等)

    Dockerfile的设计如下:

    # 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 /
    
    

镜像启动后统一执行 sh run.sh

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

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

三、本地镜像的测试

  1. 首先建立镜像(registry.~~~那个是你的公网地址,用自己的仓库地址替换,:1.0是版本号)

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

    这里可能会遇到一些问题:

    • 没登陆账号,用中的登陆账号命令先登陆一下,完了再传

    • 版本号重复,会导致之前的镜像TAG变成<none>,因此不需要之前的镜像时要及时删除,删除命令如下:

      扫描二维码关注公众号,回复: 16633806 查看本文章
      docker rmi IMAGE ID
      # 如果遇到无法删除的情况,那么先用如下命令查看一下container在占用
      docker ps -a 
      #完了用如下命令删除对应的containrer
      docker rm CONTAINER ID
      
  2. 构建好镜像之后,使用如下命令可以测试一下看看有问题没有

    CPU镜像:docker run your_image sh run.sh
    GPU镜像:(有待考证)

    # 使用所有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
    

四、本地镜像的上传

  1. 如果前面都没有问题了,那就传到自己的仓库就行了

    docker push registry.cn-shenzhen.aliyuncs.com/test_for_tianchi/test_for_tianchi_submit:1.0
    
    • 如果遇到上传失败,可能是没登陆账号,用中的登陆账号命令先登陆一下,完了再传

五、比赛结果提交

  1. 配置一下自己的镜像路径、用户名和密码就好了enter image description here

六、常用命令

# 查看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

猜你喜欢

转载自blog.csdn.net/qq_36306288/article/details/114916084