系统综合实践第五次作业

❄一、python镜像构建

(1)树形结构

(2)dockerfile

FROM python
MAINTAINER hadoop<1060296843@qq.com>
WORKDIR /app
COPY ./requirements.txt /requirements.txt
RUN pip install -r /requirements.txt -i https://pypi.douban.com/simple  #修改源并安装依赖
ENTRYPOINT ["python"]
CMD ["helloworld.py"] #默认打开文件

(3)requirements.txt

PyMySQL
opencv-python

(4)构建镜像

sudo docker build -t bbr-python .

❄运行程序

(1)helloworld.py

print('hello world')

运行

sudo docker run -it --rm -v /home/hadoop/py/app:/app bbr-python helloworld.py

(2)date.py(日历输出)

import calendar
yy = int(input("输入年份: "))
mm = int(input("输入月份: "))
print(calendar.month(yy,mm))

运行

sudo docker run -it --rm -v /home/hadoop/py/app:/app bbr-python date.py

(3) db.py(数据库操作)

import pymysql
 
# 打开数据库连接
db = pymysql.connect("bymysql", "docker", "123456", "docker_mysql")

# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
 
# 使用 execute()  方法执行 SQL 查询 
cursor.execute("SELECT VERSION()")
 
# 使用 fetchone() 方法获取单条数据.
data = cursor.fetchone()
 
print ("Database version : %s " % data)

# 使用 execute() 方法执行 SQL,如果表存在则删除
cursor.execute("DROP TABLE IF EXISTS `user`")

sql = """CREATE TABLE IF NOT EXISTS `user`(
         `id` bigint(20) NOT NULL,
         `name` varchar(50) DEFAULT NULL)"""

cursor.execute(sql)

# SQL 插入语句
sql = """INSERT INTO `user`(`id`,
         `name`)
         VALUES (13, 'br')"""
try:
   # 执行sql语句
   cursor.execute(sql)
   # 提交到数据库执行
   db.commit()
except:
   # 如果发生错误则回滚
   db.rollback()

# SQL 查询语句
sql = "SELECT * FROM user"

try:
   # 执行SQL语句
   cursor.execute(sql)
   # 获取所有记录列表
   results = cursor.fetchall()
   for row in results:
      id = row[0]
      name = row[1]
       # 打印结果
      print ("id=%s,name=%s" % 
             (id, name))
except:
   print ("Error: unable to fetch data")

# 关闭数据库连接
db.close()

运行

sudo docker run --name bymysql -d bymysql
sudo docker run -it --rm -v /home/hadoop/py/app:/app bbr-python db.py


验证

sudo docker exec -it bymysql /bin/bash
mysql -u docker -p #输入密码123456
show databases;
use docker_mysql
select * from user;

(4)opencv.py(图像翻转程序)

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/hadoop/py/app:/app bbr-python opencv.py

❄遇到的问题

Q:

A:发现是db.py文件多打了符号,不认真犯的错

❄花费的时间

  • 镜像构建:0.5h
  • 运行程序:2h
  • 博客:0.5h
  • 总计:3h
原文地址:https://www.cnblogs.com/bbbr/p/12936102.html