linux pandas教程_竞赛中的Docker使用教程
1 Docker 简介
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。
2 容器化的需要和意义
- 无法保证生产环境的操作系统以及底层库的版本Centos、Ubuntu、Debian、Fedora;gcc、glibc、gfortran
- 一台服务器上部署多个项目,依赖不同的包,甚至python版本numpy、scipy、pandas、scikit-learn、tensorflow、keras;python2.7/3.5/3.6 pyenv并不能做到完全的隔离
- 开发环境在做批处理,但生产环境很多都是流处理
- 开发:用numpy读入一个文件,处理完成之后写结果
- 生产:请在**ms内返回结果
现在越来越多的比赛在初赛或复赛的时候也是需要提交docker镜像,所以这里我以AMAP-TEAD比赛为例,做一个docker在比赛中的使用教程,比赛链接如下
https://tianchi.aliyun.com/competition/entrance/531809/introduction
3 docker&&nvidia-docker的安装及设置(Ubuntu18.04)
3.1 安装
# 新apt包的索引 sudo apt-get update #添加Docker仓库到apt sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common #添加Docker的官方GPG key curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" #安装docker-ce sudo apt-get update sudo apt-get install docker-ce
#安装nvidia-docker curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - distribution=$(. /etc/os-release;echo $ID$VERSION_ID) curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list |sudo tee /etc/apt/sources.list.d/nvidia-docker.list sudo apt-get update sudo apt-get install -y nvidia-docker2 sudo pkill -SIGHUP dockerd
3.2 设置
- 给用户配置docker权限
sudo groupadd docker sudo gpasswd -a ailight(user) docker newgrp docker
- 修改镜像和容器的保存路径
4 阿里云镜像服务
https://tianchi.aliyun.com/competition/entrance/231759/tab/174
按操作流程开通我们所做比赛的镜像仓库,成功后如图
5 Docker操作(只展示可能常用到的)
示例:
- 指定容器内目录与宿主机目录共享(: 之前是宿主机文件夹,之后是容器需共享的文件夹)(联网)
docker run -itd --net host imagename /bin/bash
- Docker访问容器
docker exec -it CONTAINER /bin/bash
- 导出镜像到文件&&导入镜像文件
docker save $DOCKER_IMAGE > $filenamedocker load
5 制作比赛镜像以及提交
5.1 基础镜像的查找和下载
pytorch1.6.0+py38+cuda10.2
docker pull wangkenpu/pytorch1.6.0-hvd-apex-py38-cuda10.2-cudnn7:20200827
5.2 安装我们所需要的包(两种方法)
- 编写Dockerfile,安装我们所需要的包
- FROM :从指定镜像中创建
- RUN在当前镜像基础上执行指定命令,并提交为新的镜像
- COPY复制本地主机的到容器中的
- WORKDIR /path/to/workdir 配置工作目录
- ENTRYPOOINT ["executable", "param1", "param2"]
- 配置容器启动后执行的命令
- 详见http://www.dockerinfo.net/dockerfile%E4%BB%8B%E7%BB%8D 介绍
docker build -t amap_base .
- 直接run镜像在容器里安装
- nvidia-docker run -itd --net host image_id /bin/bash
- nvidia-docker exec-it 1ef2652342be /bin/bash(访问容器)
在容器内部安装mmclassification,这里就不细说了 ,具体和我们平常在服务器的安装方法一致
5.3 Copy模型文件和测试代码到容器内
docker cp MMCLS.py 1ef2652342be:/amap/code/
5.4 Commit容器为新的镜像
docker commit 1ef2652342be amap:v1
构建提交镜像(run.sh&&Dockerfile)
docker build -t 天池之前创建的镜像仓库:1.0 .
5.5 本地测试
nvidia-docker run -v /data:/tcdata image sh run.sh
我用初赛B榜测试集来测试,-v 挂载本地路径/home/ailight/桌面/work_dir/amap/data/test按比赛要求挂载为/tcdata
- 运行没有问题 在容器中也可以找到result.json
- Docker push yourimage(提交)
5.6 提交镜像
得到了我们很菜的成绩
6 总结
Docker 非常便于开发,交付和运行应用程序的开放平台。Docker 使您能够将应用程序与基础架构分开,从而可以快速交付软件。借助 Docker,您可以与管理应用程序相同的方式来管理基础架构。通过利用 Docker 的方法来快速交付,测试和部署代码,大大减少编写代码和在生产环境中运行代码之间的延迟。
注:大家有什么想了解的也可以在下方留言告诉我们,我们也会选择做分享
linux pandas教程_竞赛中的Docker使用教程相关推荐
- 惠普打印机墨盒更换教程_惠普打印机加墨教程:老司机教你
01惠普打印机加墨教程 [中关村在线原创]惠普的打印机用户众多.那么墨盒用完了怎么办?很多人想到的是找个加墨教程.这里我们作为老司机就给各位带带路,来一个惠普打印机加墨教程. 惠普打印机加墨教程 惠普 ...
- php 网站访问统计插件,帝国CMS教程_网站访问统计插件使用教程_好特教程
帝国CMS教程:网站访问统计插件使用教程,先来看下效果图 上传以下图片: ******************** 安装插件 ******************** 1.如果你的后台 ...
- docker linux 快速开窗口_技术|如何使用 Docker 快速配置数据科学开发环境?
数据科学开发环境配置起来让人头疼,会碰到包版本不一致.错误信息不熟悉和编译时间漫长等问题.这很容易让人垂头丧气,也使得迈入数据科学的这第一步十分艰难.而且这也是一个完全不常见的准入门槛. 还好,过去几 ...
- linux pclint配置_静态分析工具PC-lint Plus使用教程:安装与配置
PC-lint Plus是一种静态分析工具,通过分析C和C ++源代码来发现软件中的缺陷.与编译器一样,PC-lint Plus会解析源代码文件,执行语义分析,并构建一个抽象语法树来表示程序.PC-l ...
- seaborn 教程_使用Seaborn进行数据可视化教程
seaborn 教程 "Seaborn makes the exploratory data analysis phase of your data science project beau ...
- python头像教程_微信好友头像全家福详细教程python版
昨天按照大佬的代码,做了一个微信全家福的图片,后面好多人问我是怎么做的,索性我就出个详细的教程吧,我python也是三脚猫功夫,有不对的地方,还请各位大佬手下留情. 先看看成果吧 微信好友头像全家福详 ...
- 天视通摄像头设置教程_天视通摄像头设置教程_直播教程 | 使用虎牙伴侣背景消除,来点新鲜的直播玩法!......
使用虎牙伴侣背景消除,来点新鲜的直播玩法! 使用绿幕背景消除,在国外的游戏主播圈里十分流行,虎牙直播上也有不少游戏主播使用背景消除功能了,这也是主播群体最常见的应用场景. 娱乐主播的话,有些直播间装修 ...
- 小雷盒子刷x86教程_小米盒子刷windows系统教程
[导读]小米盒子怎么刷windows系统?相关系统问题,下面191路由网小编为大家详细解答. Bochs是一种十分轻便的使用c++编写的开源IA-32(x86)电脑模拟器,可以运行在最受欢迎的平台上. ...
- mysql5 workbench教程_详解MySQL Workbench使用教程
MySQL Workbench 是一款专为 MySQL 设计的集成化桌面软件,也是下一代的可视化数据库设计.管理的工具,它同时有开源和商业化两个版本.该软件支持 Windows 和 Linux 系统, ...
最新文章
- python数据分析——世界杯分析预测
- 日志库EasyLogging++学习系列(6)—— 日志记录器
- 启明云端分享 | sigmastar SSD201开发板网口直连PC升级
- Centos搭建FTP服务
- php中间件怎么使用,laravel框架中间件简单使用方法示例
- matplotlib 画多条折线图且x轴下标非数值
- 我在华为做Android外包的真实经历!吊打面试官系列!
- git管理复杂项目代码
- 10- monkey日志分析
- Oracle数据库 - 安装教程
- HTTP方法的幂等性
- Origin2018安装与使用(整理中)
- 瑞星:愚人节Conficker蠕虫未在我国爆发
- hdoj 1570 A C
- js获取某年某月某天是第几周
- 电脑上计算机无法搜索文件,怎么搜索电脑中的文件?电脑搜索文件教程
- 大白话图文结合的方式讲解什么是CAP
- mac os操作系统如何降级
- Linux系统安全加固设置详细教程
- 写了一个增量式的爬虫,但是并不完美,希望大牛们可以指正指正!
热门文章
- Main execution in Scala - Scala应用的入口
- filter operation implementation in Gateway framework
- cannot open layout editor - how to fix error message
- how is my real odata request hijacked by Mock server
- 使用经过oauth验证后的github API,避免调用频次超标的问题
- Fiori应用里如何隐藏prospect字段
- CRM呼叫中心里的Java stack
- 2019年6月19日Jerry Wang的SAP SAP Cloud Connector练习
- 使用代码创建具有organization unit的opportunity
- SAP标准培训课程C4C10学习笔记(二)第二单元