❄一、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