一、实验文件目录
二、构建个人python镜像
1、requirements.txt
PyMySQL
opencv-python
2、Dockerfile
FROM python
WORKDIR /app
COPY requirements*.txt ./
# 修改源并安装依赖
RUN pip install -r requirements.txt -i https://pypi.douban.com/simple
ENTRYPOINT ["python"]
CMD ["hello.py"]
构建镜像
docker build -t docker-python .
三、运行测试
1、hello.py
hello python
执行命令:
docker run --rm -v /home/yangchengjin/python/app:/app docker-python hello.py
2、date.py
import calendar
# 输入指定年月
yy = int(input("输入年份: "))
mm = int(input("输入月份: "))
# 显示日历
print(calendar.month(yy,mm))
执行命令:
docker run --rt -v /home/yangchengjin/python/app:/app docker-python date.py
3、mysql数据库操作
这次用到的数据库容器是实验二的数据库容器,所以先运行实验二当时建立的mysql容器,然后进入数据库,连接到docker_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()
sql.py
ip='c_mysql_ex2' #MySQL容器名
username='ycj' #用户名
password='123456' #密码
db_name='docker_mysql'#数据库名
table_name='test' #表名
db=Mysql_db(ip, username, password, db_name,table_name)
db.db_conn()
sql1="insert into %s values('123456790',95);" %table_name
db.insert_data(sql1)
print(db.select_all())
db.conn_close()
在新建终端执行:
docker run -it -v /home/yangchengjin/python/app:/app --link=c_mysql_ex2 --rm docker-python sql.py
在之前的运行mysql容器的终端查看
4、cv.py
#简单的生成灰度图形
#通过cv2.imread直接实现,0表示使用灰度读入
#最后将灰度图像保存在同一目录下
import cv2
img = cv2.imread("image.jpg", 0)
cv2.imwrite('result.jpg', img)
print("success")
执行命令:
docker run --rm -v /home/yangchengjin/python/app:/app docker-python cv.py