【星海出品】flask 与docker

import os
from flask import Flask, request
from flask import Response, make_response, jsonify
import cv2
import base64
import io
import uuid
from main import eye
​
app = Flask(__name__)@app.route('/', methods=['GET', 'POST'])  # 添加路由blend
def upload_file(): # 处理逻辑函数
    if request.method == "POST":
        result = request.form['eye']
        print("111")return result
​
if __name__ == '__main__':
    # 地址需要是0.0.0.0,保证外机访问
    app.run(host="0.0.0.0", debug=True, port=8080)

例子:注意get和post读取数据的形式不同!

 import requests
 # flask get方式
 def get():
     url = "http://127.0.0.1:8080"
     ret = requests.get(url)
     return ret.text
 ​
 # flask post方式
 def post():
     url = "http://127.0.0.1:8080"
     data = {'eye': '1'}
     
     ret = requests.post(url, data=data)return ret.text
 ​
 if __name__ == '__main__':
     post()

【星海出品】flask 与docker_第1张图片
菜鸟教程: https://www.runoob.com/docker/docker-hello-world.html

docker

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
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"
sudo apt-get update
sudo apt-get install docker-ce

启动Docker 使用以下命令启动Docker服务:

sudo systemctl start docker

设置Docker自动启动,使用以下命令设置Docker自动启动:

sudo systemctl enable docker

验证Docker安装是否成功

docker version

如果安装成功,您将看到Docker版本信息的输出。
查看docker状态

 sudo docker ps

docker设置一些被指可以用于镜像加速
/etc/docker/daemon.json

 方式一:中国区官方镜像
 {
   "registry-mirrors": ["https://registry.docker-cn.com"]
 }
 ​
 方式二:网易镜像
 {
   "registry-mirrors": ["http://hub-mirror.c.163.com"]
 }
 ​
 方式三:中国科技大学镜像
 {
   "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
 }
 {
   "debug": true,
   "experimental": false,
   "features": {
     "buildkit": false
   },
   "insecure-registries": [],
   "registry-mirrors": [
     "http://hub-mirror.c.163.com",
     "https://docker.mirrors.ustc.edu.cn",
     "https://registry.docker-cn.com",
     "https://mirror.ccs.tencentyun.com"
   ]
 }

修改完成后,再重加载配置文件:sudo systemctl daemon-reload
重启动docker:sudo systemctl restart docker
检查加速器是否生效:docker info

拉取新的镜像

 docker pull imagename:tag

查找镜像

 docker search httpd

删除镜像

 docker rmi imagename
 docker rmi imageID

查看所有容器

 docker ps -a

运行一个镜像,并生成一个容器,保持有一个持续进行的进程(所以加上/bin/bash,否则自动退出进程),才能保证容器被启动。-p:宿主机端口(flask的port):docker镜像声明的端口(dockerfile的EXPORT),在大部分的场景下,我们希望 docker 的服务是在后台运行的,我们可以过 -d 指定容器的运行模式。

 docker run -it imagename /bin/bash

参数说明:​
-i: 交互式操作。
-t: 终端

sample:
 docker run -p 8080:8080 -dit <Image> /bin/bash  

进入容器

 docker attach <容器 ID>​
 注意: 如果从这个容器退出,会导致容器的停止。
 docker exec -it <容器 ID> /bin/bash​
 注意: 如果从这个容器退出,容器不会停止,推荐大家使用 docker exec。

启动已停止的容器
docker start containerID
停止容器
docker stop <容器 ID>
重启容器
docker restart <容器 ID>

docker run :创建一个新的容器并运行一个命令

语法
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
OPTIONS说明:

-a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
-d: 后台运行容器,并返回容器ID;
-i: 以交互模式运行容器,通常与 -t 同时使用;
-P: 随机端口映射,容器内部端口随机映射到主机的端口
-p: 指定端口映射,格式为:主机(宿主)端口:容器端口
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
--name="nginx-lb": 为容器指定一个名称;
--dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
--dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
-h "mars": 指定容器的hostname;
-e username="ritchie": 设置环境变量;
--env-file=[]: 从指定文件读入环境变量;
--cpuset="0-2" or --cpuset="0,1,2": 绑定容器到指定CPU运行;
-m :设置容器使用内存最大值;
--net="bridge": 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
--link=[]: 添加链接到另一个容器;
--expose=[]: 开放一个端口或一组端口;
--volume , -v: 绑定一个卷

实例
使用docker镜像nginx:latest以后台模式启动一个容器,并将容器命名为mynginx。

docker run --name mynginx -d nginx:latest
使用镜像nginx:latest以后台模式启动一个容器,并将容器的80端口映射到主机随机端口。

docker run -P -d nginx:latest
使用镜像 nginx:latest,以后台模式启动一个容器,将容器的 80 端口映射到主机的 80 端口,主机的目录 /data 映射到容器的 /data。

docker run -p 80:80 -v /data:/data -d nginx:latest
绑定容器的 8080 端口,并将其映射到本地主机 127.0.0.1 的 80 端口上。

$ docker run -p 127.0.0.1:80:8080/tcp ubuntu bash
使用镜像nginx:latest以交互模式启动一个容器,在容器内执行/bin/bash命令。

runoob@runoob:~$ docker run -it nginx:latest /bin/bash
root@b8573233d675:/# 

通过进入容器,对容器进行修改.
对于修改成功的容器重新构建新Image

docker commit <Container ID 旧> <Image name 新>:<tag>

打包镜像Image为tar

docker save -o XXX.tar <Image name>:<tag>

载入镜像

docker load -i XXX.tar

你可能感兴趣的:(flask,docker,python)