zoukankan      html  css  js  c++  java
  • 系统综合实践第五次作业

    容器内运行python程序

    一、基础文档编写

    0.项目结构

    1.文件夹内编写Dockfile

    Dockerfile

    FROM python:3.7
    WORKDIR /usr/src/app  
    COPY requirements.txt ./  
    RUN pip install --no-cache-dir -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
    VOLUME /usr/src/app
    ENTRYPOINT ["python"]    
    CMD ["hello.py"]   
    

    2.声明所需依赖

    requirement.txt

    PyMySQL
    opencv-python
    

    3.构建镜像

    sudo docker build -t python

    二、程序的部署运行

    hello world程序

    hello.py

    #hello.py
    print('hello world !')
    

    运行hello.py(默认运行hello.py,所以可以不用指明文件名)

    sudo docker run -it -v /home/zhanghui/python/app:/usr/src/app --rm python

    日历输出

    date.py

    import calendar
    # 输入指定年月
    yy = int(input("输入年份: "))
    mm = int(input("输入月份: ")) 
    # 显示日历
    print(calendar.month(yy,mm))
    

    运行date.py

    sudo docker run -it -v /home/zhanghui/python/app:/usr/src/app --rm python date.py

    数据库操作

    运行之前的数据库容器,并创建新表

    sudo docker run --name zh_mysql -p 3306:3306 -d mysql_image
    sudo docker exec -it zh_mysql /bin/bash  
    mysql -u root -p
    create database student;
    use student
    create table ID (num int , name varchar(20),primary key(num));  #创建数据表
    insert into ID(num,name) value(913 , 'linli'); #插入数据
    select * from ID;
    

    db.py

    import pymysql
    
    db = pymysql.connect("10.0.2.15", "root", "123456", "student")
    
    # 使用 cursor() 方法创建一个游标对象 cursor
    cursor = db.cursor()
     
    # 使用 execute()  方法执行 SQL 查询 
    try:
        cursor.execute("select * from ID;")   #执行
        results = cursor.fetchall()
     
        for row in results:
              num = row[0]
              name = row[1]
               # 打印结果
              print ("num=%d , name=%s" % 
                     (num,name ))
    
    except:
        print("Error: unable to fetch data")
    # 关闭数据库连接
    db.close()
    

    运行db.py

    sudo docker run -it -v /home/zhanghui/python/app:/usr/src/app --rm --link=mysql_image python db.py

    opencv程序

    cv.py

    import cv2
    img = cv2.imread("1.png", 0)
    cv2.waitKey()
    cv2.imwrite("2.png", img)  
    

    运行cv.py

    sudo docker run -it -v /home/zhanghui/python/app:/usr/src/app --rm python cv.py


    用时和心得

    这次实验相对简单一些,差不多花了5个小时左右,中间也有遇到一些bug,不过都是些小问题。

  • 相关阅读:
    Spring Boot
    Spring Boot Tomcat配置详解
    Spring Boot读取配置的 5 种方式
    Spring Boot日志集成实战
    Spring Boot国际化开发实战
    Spring Boot整合 Thymeleaf 模板引擎
    Spring Boot Debug调试
    Spring Boot实现热部署
    Exchange Cards(dfs)
    Dungeon Master
  • 原文地址:https://www.cnblogs.com/booob/p/12938719.html
Copyright © 2011-2022 走看看