第五次系统综合实践
Python镜像部署
- 首先,日常换源
- 文档结构
- dockerfile
FROM python:3
MAINTAINER monster<1263199084@qq.com>
WORKDIR /app
COPY ./requirements.txt /requirements.txt
#修改源并>安装依赖
RUN pip install -r /requirements.txt -i https://pypi.douban.com/simple
ENTRYPOINT ["python"]
#默认打开文件
CMD ["hello.py"]
- requirements
PyMySQL
opencv-python
Hello World
-v将本地目录挂载到python工作目录以方便代码修改
--rm运行完毕后自动移除容器
sudo docker run -it --rm -v /home/kingbob/python/app:/app python:v1 helloworld.py
print('hello world')
日历(菜鸟驿站)
import calendar
# 输入指定年月
yy = int(input("输入年: "))
mm = int(input("输入月: "))
# 显示日历
print(calendar.month(yy,mm))
交互式终端需要 -it 指令
sudo docker run -it --rm -v /home/kingbob/python/app:/app python:v1 date.py
mysql操作(用实践二的数据库)
- 注意一下上面图片和下面代码一些参数的对应关系
import pymysql
# 打开数据库连接:容器名,账户,密码,容器里的数据库名
db = pymysql.connect("youthful_kalam", "docker", "123456", "docker_mysql")
#创建游标对象
cursor = db.cursor()
#先查询一次数据库数据
sql = """select * FROM test"""
cursor.execute(sql)
results = cursor.fetchall()
print(results)
#SQL插入语句
sql="""insert test(id,name)
values(2022,'DEF')"""
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/kingbob/python/app:/app --link=youthful_kalam:youthful_kalam python:v1 database.py
opencv
#做一个图片翻转功能
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/kingbob/python/app:/app python:v1 opencv.py
总结
- 这次作业相比前面一次要轻松了,有了前面的基础相对解决问题也不会那么麻烦了