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

一,python镜像定制

  • 文件结构

  • Dockerfile

FROM python:3.7
MAINTAINER tt
# 设置工作目录
WORKDIR /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"]
# ENTRYPOINT默认参数
CMD ["hello.py"]
  • requirements(为之后的数据库操作和OpenCV程序引入依赖)
PyMySQL
opencv-python
  • 构建镜像
    sudo docker build -t python_test .

二,运行py程序

1,测试

  • hello.py
    print('hello world')
  • 运行py
    sudo docker run -it --rm -v /home/ubuntu/mypy/app:/app python_test opencv.py

2,日历输出

  • date.py
import calendar 
# 输入指定年月
yy = int(input("输入年份: "))
mm = int(input("输入月份: "))
 
# 显示日历
print(calendar.month(yy,mm))
  • 运行py
    sudo docker run -it --rm -v /home/ubuntu/test5/pyfile:/pyfile python_test date.py

3,mysql数据库操作

  • mysql.py
import pymysql

# 打开数据库连接
db = pymysql.connect("mysql", "tong", "123456", "docker_mysql")

cursor = db.cursor()
sql = """select * FROM test"""
cursor.execute(sql)
results = cursor.fetchall()
print(results)

# SQL插入语句
sql = """insert test(id,name,sex)
	values(002,'fwh','girl')"""
cursor.execute(sql)
db.commit()

# 插入完成后再读取一次数据库数据
sql = """select * FROM test"""
cursor.execute(sql)
results = cursor.fetchall()
print(results)

# 关闭数据库连接
db.close()
  • 运行程序
    sudo docker run -it --rm -v /home/ubuntu/test5/pyfile:/pyfile --link=zzq_mysql python_test db.py


4,opencv程序的部署运行

  • opencv.py
import cv2
import numpy as np
image = cv2.imread('test.png')
result = image[250:1700, 0:900]
cv2.imwrite('test_result.png', result)
  • 运行程序
    sudo docker run -it --rm -v /home/ubuntu/test5/pyfile:/pyfile python_test opencv.py

  • 效果图展示:

三,遇到的问题和解决方法以及花费的时间

  • 遇到的问题:
    一开始把image和names混淆了,一直找不到对应的容器。解决方法:docker ps查看正确的名字。
  • 花费的时间:
    共1.5小时。
posted @ 2020-05-22 12:14  青稞与麦芒  阅读(102)  评论(0编辑  收藏  举报