目录
创建运行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把代码改成保存图片而不是查看图片就可以了
耗时
大概三个小时,主要还是耗费在了数据库这一部分,还好之前作业的博客,提高了些效率,不然真的又忘光了,看来把博客写完整是真的舒服