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

    ❄一、python镜像构建

    (1)树形结构

    (2)dockerfile

    FROM python
    MAINTAINER hadoop<1060296843@qq.com>
    WORKDIR /app
    COPY ./requirements.txt /requirements.txt
    RUN pip install -r /requirements.txt -i https://pypi.douban.com/simple  #修改源并安装依赖
    ENTRYPOINT ["python"]
    CMD ["helloworld.py"] #默认打开文件
    

    (3)requirements.txt

    PyMySQL
    opencv-python
    

    (4)构建镜像

    sudo docker build -t bbr-python .
    

    ❄运行程序

    (1)helloworld.py

    print('hello world')
    

    运行

    sudo docker run -it --rm -v /home/hadoop/py/app:/app bbr-python helloworld.py
    

    (2)date.py(日历输出)

    import calendar
    yy = int(input("输入年份: "))
    mm = int(input("输入月份: "))
    print(calendar.month(yy,mm))
    

    运行

    sudo docker run -it --rm -v /home/hadoop/py/app:/app bbr-python date.py
    

    (3) db.py(数据库操作)

    import pymysql
     
    # 打开数据库连接
    db = pymysql.connect("bymysql", "docker", "123456", "docker_mysql")
    
    # 使用 cursor() 方法创建一个游标对象 cursor
    cursor = db.cursor()
     
    # 使用 execute()  方法执行 SQL 查询 
    cursor.execute("SELECT VERSION()")
     
    # 使用 fetchone() 方法获取单条数据.
    data = cursor.fetchone()
     
    print ("Database version : %s " % data)
    
    # 使用 execute() 方法执行 SQL,如果表存在则删除
    cursor.execute("DROP TABLE IF EXISTS `user`")
    
    sql = """CREATE TABLE IF NOT EXISTS `user`(
             `id` bigint(20) NOT NULL,
             `name` varchar(50) DEFAULT NULL)"""
    
    cursor.execute(sql)
    
    # SQL 插入语句
    sql = """INSERT INTO `user`(`id`,
             `name`)
             VALUES (13, 'br')"""
    try:
       # 执行sql语句
       cursor.execute(sql)
       # 提交到数据库执行
       db.commit()
    except:
       # 如果发生错误则回滚
       db.rollback()
    
    # SQL 查询语句
    sql = "SELECT * FROM user"
    
    try:
       # 执行SQL语句
       cursor.execute(sql)
       # 获取所有记录列表
       results = cursor.fetchall()
       for row in results:
          id = row[0]
          name = row[1]
           # 打印结果
          print ("id=%s,name=%s" % 
                 (id, name))
    except:
       print ("Error: unable to fetch data")
    
    # 关闭数据库连接
    db.close()
    

    运行

    sudo docker run --name bymysql -d bymysql
    sudo docker run -it --rm -v /home/hadoop/py/app:/app bbr-python db.py
    


    验证

    sudo docker exec -it bymysql /bin/bash
    mysql -u docker -p #输入密码123456
    show databases;
    use docker_mysql
    select * from user;
    

    (4)opencv.py(图像翻转程序)

    import cv2
    img=cv2.imread('test.jpg',flags=1)
    rows,cols=img.shape[:2]
    M=cv2.getRotationMatrix2D((cols/2,rows/2),90,1)
    dst=cv2.warpAffine(img,M,(cols,rows))
    cv2.imwrite("test-rotated.jpg", dst, [int(cv2.IMWRITE_JPEG_QUALITY), 100])
    print('rotated and saved.')
    

    运行

    sudo docker run -it --rm -v /home/hadoop/py/app:/app bbr-python opencv.py
    

    ❄遇到的问题

    Q:

    A:发现是db.py文件多打了符号,不认真犯的错

    ❄花费的时间

    • 镜像构建:0.5h
    • 运行程序:2h
    • 博客:0.5h
    • 总计:3h
  • 相关阅读:
    谈谈MySQL支持的事务隔离级别,以及悲观锁和乐观锁的原理和应用场景?
    Java8 使用stream实现各种list操作
    算法题:括号匹配(小中大括号序列)
    算法第四版-文字版-下载地址-Robert Sedgewick
    桥接模式
    java设计模式--抽象工厂模式
    精选20道Java代码笔试题
    JDK动态代理与CGLib动态代理相关问题
    UVA215 Spreadsheet
    hdu 1231 最大连续子序列
  • 原文地址:https://www.cnblogs.com/bbbr/p/12936102.html
Copyright © 2011-2022 走看看