因为逻辑复杂

我们建个文件来

python #是单行注释

'''是多行注释

或者”””

我们想使用python来操作docker 那么就要一个api

https://github.com/docker/docker-py官方API 以python来使用docker命令

我其实就想用这个api的 docker run 这个命令 不过是以python的方式

定义一下image

下面就是写 build——and——run了

他的原理是什么呢?

原理就是使用python操作docker的client

的docker run的API

那么怎么把用户代码传进去呢?

这里有个磁盘映射

就是将我们ubuntu一个文件夹映射到我们docker下面的某个文件

那么在我们docker container里面就看到 这些映射的内容

通过这种映射的方式传入用户代码

当然实现这个的前提是

我们将客户代码写入一个文件(ubuntu)中

然后将这个包含文件的文件夹映射给我们的docker

那么docker在运行的时候通过自带的load_image方法就会自动得到用户代码

所以我们将本地代码写入文件去

我们先把返回的结构体写一下

我们为啥这么写呢?因为我们在rest.js里面已经定义了返回体了我们看看

这里的build 和run 就是我们 上面返回的东西

python自带的库

就是为了唯一指定 用户代码 因为我们execution srvice 服务于多个request 这样好区分

每个用户对于不同的id和文件夹

定义一下目录存放位置

本地存放位置用了os这个类库(pyhton自带的库 一般先查就好)

host就是在ubuntu上

guest在docker container 的ubuntu里面的test文件夹下

其实就是将host的文件夹下所有内容映射到guest文件夹下

是一一对应映射的关系

然后创建文件夹

这个方法 os可以模拟很多在linux下面的命令

比如下面的创建文件夹

然后打印log信息

那么下面就要将用户代码写入一个文件

下面就是我们这个系统最核心的部分

这个bulid 就类似 javac xxx

这个execute 就类似java XXX

然后把map拿过来

然后我们在executor——service来调用

为了简单 我们取名eu

然后

再启动我们flask之前我们先加载image

因为可能本地没image 或者我们部署在远程server上

或者本地你删掉了

总之 你先load image 确保本地有iamge

我们用 postman来验证一下

报错了

这是因为

'/home/han/Projects/BittigerCS503/week4/executor/tmp//df8ea3ef-42fe-409a-86f2-ce180bab8873/example.py'

说没这个文件夹

因为我们还没创建

成功

我们再测

没问题

那么我们将所有的都穿起来

nodeserver 和 exrctionserver 穿起来

我们测试一下

提交

nodeserver

flask

OK

然后我们改改launcher.sh

改成

以后直接运行sudo ./launcher.sh就行了!

26.如何使用python操作我们自己创建的docker image呢?的更多相关文章

  1. jira python操作,自动创建问题

    jira web api地址 http://jira.**.com/plugins/servlet/restbrowser http://jira.**.com/rest/api/2/issue/cr ...

  2. python操作excel常用的方法

    读操作模块安装 pip install xlrd 写操作模块安装 pip install xlwt xlrd读操作 1.打开excel xl = xlrd.open_workbook('test.xl ...

  3. 用来创建用户docker registry认证的Secret

    集群环境:1.k8s用的是二进制方式安装2.操作系统是linux (centos)3.操作系统版本为 7.4/7.94.k8s的应用管理.node管理.pod管理等用rancher.k8s令牌以及ma ...

  4. Python 【第六章】:Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy

    Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度 ...

  5. python操作数据库

    一,安装mysql 如果是windows 用户,mysql 的安装非常简单,直接下载安装文件,双击安装文件一步一步进行操作即可. Linux 下的安装可能会更加简单,除了下载安装包进行安装外,一般的l ...

  6. Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy

    Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度 ...

  7. Python开发【第十九篇】:Python操作MySQL

    本篇对于Python操作MySQL主要使用两种方式: 原生模块 pymsql ORM框架 SQLAchemy pymsql pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb ...

  8. Python操作memcached及redis

    Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度 ...

  9. Python之路【第九篇】:Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy

    Python之路[第九篇]:Python操作 RabbitMQ.Redis.Memcache.SQLAlchemy   Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用 ...

随机推荐

  1. 汽车车牌JS正则表达式验证(含新能源车牌)

    /** * 第一:普通汽车 * 车牌号格式:汉字 + A-Z + 5位A-Z或0-9( 车牌号不存在字母I和O防止和1.0混淆) * (只包括了普通车牌号,教练车,警等车牌号 .部分部队车,新能源不包 ...

  2. Python利用脚本2.x到3自动转换

    本文介绍一下在windows 10 环境下如何使用这个工具: 1)首先要先安装好python3,可到官网下载https://www.python.org/ 2)使用Windows 命令提示符(cmd) ...

  3. centos 7怎么通过图形界面来配置静态ip

    除了通过修改配置文件的方法来配置静态ip,我们还可以通过图形界面来配置,这样做其实更加方便一点 先进入设置页面 选择网络 我这里是通过有线上网的,我们之间修改配置就可以了 选择ipv4,和manual ...

  4. 自然语言处理领域重要论文&资源全索引

    自然语言处理(NLP)是人工智能研究中极具挑战的一个分支.随着深度学习等技术的引入,NLP领域正在以前所未有的速度向前发展.但对于初学者来说,这一领域目前有哪些研究和资源是必读的?最近,Kyubyon ...

  5. Solr——Windows下部署Solr6.6.0至Tomcat8.5.28(二)

    1,core理解 如果把solr理解为个数据库的话,那么core可以理解为数据库中的一张表,其实就是数据集合 在写本片文章之前看到网上很多教程都说需要找到solr.xml来配置core的信息,特此说明 ...

  6. linux:Apache服务器相关

    安装apache服务器 (推荐方法) 安装前清确保已安装gcc.g++ 1)安装依赖包apr-1.6.5.tar.gz,下载地址:http://apr.apache.org/download.cgi ...

  7. es6(11)--Proxy,Reflect

    //Proxy,Reflect { let obj={ time:'2018-06-25', name:'net', _r:123 }; let monitor = new Proxy(obj,{ / ...

  8. spring事务管理实现原理-源码-传播属性

    转载请标识 https://me.csdn.net/wanghaitao4j https://blog.csdn.net/wanghaitao4j/article/details/83625260 本 ...

  9. Android 自定义TabHost,TabWidget样式

    界面比较简单,要想做得漂亮换几张图片就可以了. 第一步:先在布局(这里用了main.xml创建时自动生成的)里面放上TabHost ,只要将TabHost控件托至屏幕中就可: <?xml ver ...

  10. 24.API爬天气预报数据

    1.免费注册API 地址: https://console.heweather.com/ 必须要用IE浏览器打开,注册邮箱激活,打开控制台,如图: 认证key是访问api的钥匙 2.阅读api说明开发 ...