【开发】docker部署mmdetection

写在前面

开工咯~新年第一个打工日探索一下docker开发目标检测,今天探索了关于windows docker、nvidia-docker、ssh docker容器、docker容器端口转发,至此完成了docker的入门操作,很惊叹其轻量化打包环境的作用,但目前还不清除其用武之地,后续会继续探索。

windows docker

Docker Desktop是适用于Windows的Docker桌面,是Docker设计用于在Windows 10上运行。它是一个本地 Windows 应用程序,为构建、交付和运行dockerized应用程序提供易于使用的开发环境。Docker Desktop for Windows 使用 Windows 原生 Hyper-V 虚拟化和网络,是在 Windows 上开发 Docker 应用程序的最快、最可靠的方式。Windows 版 Docker 桌面支持运行 Linux 和 Windows Docker 容器。

安装windows docker destop参考链接【全面详细】Windows10 Docker安装详细教程

nvidia-docker

NVIDIA于2016年开始设计NVIDIA-Docker已便于容器使用NVIDIA GPUs。 第一代nvidia-docker1.0实现了对docker client的封装,并在容器启动时,将必要的GPU device和libraries挂载到容器中。但是这种设计的方式高度的与docker运行时耦合,缺乏灵活性。存在的缺陷具体如下:

  • 设计高度与docker耦合,不支持其它的容器运行时。如: LXC, CRI-O及未来可能会增加的容器运行时。
  • 不能更好的利用docker生态的其它工具。如: docker compose。
  • 不能将GPU作为调度系统的一种资源来进行灵活的调度。
  • 完善容器运行时对GPU的支持。如: 自动的获取用户层面的NVIDIA Driver libraries, NVIDIA kernel modules, device ordering等。
  • 基于上面描述的这些弊端,NVIDIA开始了对下一代容器运行时的设计: nvidia-docker2.0。

详细nvidia-docker 2.0参考链接NVidia Docker介绍
在docker运行mmdetection时需要安装nvidia-docker,具体安装可搜索安装,并将容器的daemon configuration file修改runtimes方式为nvidia,详细参考nvidia-docker部署并配置GPU机器学习环境

部署好一切后就可以在docker容器中开始运行mmdetection,具体操作参考全网最细 | 教你如何在 docker 容器下使用 mmdetection 训练自己的数据集

ssh docker container & docker port transfer

如果想远程连接docker容器那就需要再容器里装好openssh,并开启相关端口,这时我通过docer容器里ifconfig看ip为172.17.0.2,但是我的宿主机并不能ping通,不过在创建docker容器时可以采用端口映射,这样就可以用宿主机的ip和端口来ssh远程连接容器了(这是一个笨方法,不过也算走通了远程控制docker容器)。
docker run --runtime=nvidia --name mmdet -p 8828:22 -i -t apulistech/mmdetection /bin/bash
这里将宿主机的8828端口映射到容器的22端口,从而就可以用宿主机的ip和8828端口。以下是示例,本机在之前已经和宿主机采用zerotier进行内网组网。本机ip:192.168.192.98,宿主机是192.168.192.67。
在这里插入图片描述

在这里插入图片描述

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值