2020系统综合实践 第5次实践作业

1.项目结构

.
├── Dockerfile
├── python
│ ├── cv.py
│ ├── date.py
│ ├── db.py
│ ├── Dockerfile
│ ├── ex5.png
│ ├── hello.py
│ └── new.png
└── requirements.txt

2.python容器

(1)文件

  • requirements.txt
PyMySQL
opencv-python
  • Dockerfile
FROM python
WORKDIR /usr/src/app

COPY requirements.txt ./

RUN pip install  --default-timeout=100 --no-cache-dir -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt

VOLUME /usr/src/app
ENTRYPOINT [ "python" ] # 实现命令行式调用容器
CMD [ "hello.py" ] # ENTRYPOINT默认参数

(2)构建镜像

  • 命令:sudo docker build -t ex5_image .

(3)运行

  • hello.py

print('hello world')

  • 命令sudo docker run --rm -v /home/ex5/python:/usr/src/app ex5_image

    • 参数说明
      • 使用-v将本地目录挂载到python工作目录以方便代码修改
      • --rm运行完毕后自动移除容器
      • 默认使用Dockerfile中指定的hello.py作为参数
  • date.py
    sudo docker run -it --rm -v /home/ex5/python:/usr/src/app ex5_image date.py

    • 参数说明
      • date.pyENTRYPOINT的参数
      • 由于要实现交互,所以要加-it参数
  • 数据库操作

    • 运行实验4的数据库
    • db.py
      import pymysql
      
      db = pymysql.connect("msql", "root", "123456", "ex4_db")
      
      # 创建游标对象 cursor
      cursor = db.cursor()
      
      # 插入
      sql = """INSERT INTO myuser(username,phone)
               VALUES ('Yuhao Lin','1247189541')"""
      try:
         cursor.execute(sql)
         # commit
         db.commit()
      except:
         # 回滚
         db.rollback()
      
      # 查询
      sql = """SELECT * FROM myuser"""
      try:
         cursor.execute(sql)
         results = cursor.fetchall()
         for row in results:
             # 打印结果
            print ("username=%s,phone=%s" % (row[0],row[1]))
      except:
         print ("ERROR")
      db.close()
      
    • 命令sudo docker run -it --rm -v /home/ex5/python:/usr/src/app --link=msql:msql ex5_image db.py

    • 参数说明:
      • --link=容器名:容器别名` 实现容器间的互访
  • opencv

import cv2

# 生成图片
img = cv2.imread("ex5.png", 0)
#  等待图片的关闭
cv2.waitKey()
# 保存
cv2.imwrite("new.png", img)  
- 命令`sudo docker run -it --rm -v /home/ex5/python:/usr/src/app ex5_image cv.py`

3.用时&心得

时间统计

  • 查资料0.5小时
  • 动手2小时
  • 写博客0.5小时
  • 合计3小时左右

心得

  这次的实验做的很快,老师给的参考资料帮了很大的忙,当然也有“经历风雨”的原因,心理承受能力大大加强,啥不懂?搜就完事了。
posted @ 2020-05-20 16:28  方道友  阅读(189)  评论(0编辑  收藏  举报