构建Python镜像
项目目录
Dockefile
FROM python:3.7
WORKDIR /app
COPY requirements*.txt ./
# 修改源并安装依赖
RUN pip install -r requirements.txt -i https://pypi.douban.com/simple
ENTRYPOINT ["python"]
CMD ["hello.py"]
requirement.txt
PyMySQL
opencv-python
构建
docker build -t python:3 .
代码实现
helloworld
docker run -v /home/wang/test3/app:/app --rm python:3
日历输出
date.py
import calendar
calendar.setfirstweekday(firstweekday=6) # 显示出一年 12 个月份的日历
while True:
yy = int(input('input years:'))
# mm = int(input('input month:'))
for i in range(12):
print(calendar.month(yy, i + 1))
print('*' * 20)
运行
docker run -it -v /home/wang/test3/app:/app --rm python:3 date.py
mysql数据库操作
mysql_db.py
import pymysql
class Mysql_db():
def __init__(self,ip,username,password,db_name,table_name):
self.ip=ip
self.username=username
self.password=password
self.db_name=db_name
self.table_name=table_name
def db_conn(self):
#打开数据库连接
self.conn=pymysql.connect(self.ip,self.username,self.password,self.db_name)
#创建一个游标
self.cursor=self.conn.cursor()
#创建表格
def create_table(self,sql):
self.cursor.execute('drop table if exists %s;' %self.table_name)
self.cursor.execute(sql)
#插入数据
def insert_data(self,sql):
#执行SQL语句,发生错误时回滚
try:
self.cursor.execute(sql)
self.conn.commit()
except :
self.conn.rollback()
#查询数据
def select_all(self):
sql='select * from %s' %self.table_name
self.cursor.execute(sql)
return self.cursor.fetchall()
#更新数据库数据
def update_data(self):
#执行SQL语句,发生错误时回滚
try:
self.cursor.execute(sql)
self.conn.commit()
except :
self.conn.rollback()
#删除数据
def delete_data(self):
#执行SQL语句,发生错误时回滚
try:
self.cursor.execute(sql)
self.conn.commit()
except :
self.conn.rollback()
#关闭数据库
def conn_close(self):
self.conn.close()
查看容器ID
sql.py
from mysql_db import Mysql_db
ip='b36d3b2ef820' #容器ID
username='docker' #用户名
password='123456' #密码
db_name='docker_mysql' #数据库名
table_name='user' #表名
db=Mysql_db(ip, username, password, db_name,table_name)
db.db_conn()
sql1="insert into %s values('banana','5');" %table_name
db.insert_data(sql1)
print(db.select_all())
db.conn_close()
运行
docker run -it -v /home/wang/test3/app:/app --link=容器ID --rm python:3 sql.py
opencv
opencv.py
#透视变换
import cv2
import numpy as np
img = cv2.imread('1.jpg')
rows,cols,ch = img.shape
pts1 = np.float32([[56,65],[368,52],[28,387],[389,390]])
pts2 = np.float32([[0,0],[300,0],[0,300],[300,300]])
M = cv2.getPerspectiveTransform(pts1,pts2)
dst = cv2.warpPerspective(img,M,(300,300))
cv2.imwrite("2.jpg", dst, [int(cv2.IMWRITE_JPEG_QUALITY), 100])
运行
docker run -it -v /home/wang/test3/app:/app --rm python:3 opencv.py
结果
总结
时间:一天
问题:sql运行问题,最后发现是sql语句多打了个逗号。