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

创建运行python代码的Dockerfile

Dockerfile

FROM python:3
MAINTAINER Yaobink
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 ["test.py"] #默认打开文件

requirement.txt

PyMySQL
opencv-python

构建镜像

docker build -t python:py .

在容器中运行python代码

helloworld

事先已经在apps文件夹下放入了test.py文件

docker run -it -v /home/y/hw5/apps:/usr/src/app --rm  python:v0        ##--rm 表示运行完会删除容器

日历输出

mysql数据库操作

使用之前实验二创建的数据库容器
进入c_mysql容器
登录容器内部mysql,给mysql数据库添加一个远程连接的用户

mysql -uroot -p 123456 #连接进入容器内部mysql
grant all privileges on *.* to 'Yao'@'%';  #刷新权限

查询

#!/usr/bin/python3
import pymysql
# 打开数据库连接
db = pymysql.connect("172.18.0.1","Yao","123456","docker_mysql" )
...

详细代码参考

docker run -it -v /home/y/hw5/apps:/usr/src/app --rm  python:v0 sqltest.py  #最后添加文件名,运行指定的py文件

插入

修改

删除

opencv程序的部署运行

实现图片的平移

import cv2
import numpy as np

img = cv2.imread("messi5.jpg", 1)
imgInfo = img.shape
height = imgInfo[0]
width = imgInfo[1]
mode = imgInfo[2]

dst = np.zeros(imgInfo, np.uint8)

for i in range( height ):
    for j in range( width - 100 ):
        dst[i, j + 100] = img[i, j]

cv2.imwrite("test-rotated.jpg", dst, [int(cv2.IMWRITE_JPEG_QUALITY), 100])

docker run -it -v /home/y/hw5/apps:/usr/src/app --rm  python:v0 opcv.py

问题

(1)测试数据库的时候出现了了一些python语法的问题,忘记修改链接语句里面的localhost为本机地址导致错误,后面又出现了连接被拒绝

按照该链接修改即可
(2)测试opencv的时候出现这种情况

这是由于代码内有cv2.imshow函数没有注释掉,这个函数在windows下可以直接调出窗口显示图片,在命令行下使用Linux就没法显示了
所以通过cv2.imwrite把代码改成保存图片而不是查看图片就可以了

耗时

大概三个小时,主要还是耗费在了数据库这一部分,还好之前作业的博客,提高了些效率,不然真的又忘光了,看来把博客写完整是真的舒服

posted @ 2020-05-16 20:32  Yaobink  阅读(327)  评论(0编辑  收藏  举报