1.构建镜像
-
Dockerfile
FROM python:3 WORKDIR /usr/src/app #工作目录 COPY requirements.txt ./requirements.txt #依赖声明 RUN pip install --no-cache-dir -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt #换清华源,并安装依赖 COPY myapp/hello.py /usr/src/app/ VOLUME /usr/src/app ENTRYPOINT ["python"] CMD ["hello.py"]
-
requirements.txt
PyMySQL opencv-python
-
build镜像
docker build -t mypython .
2.部署运行
-
helloworld
docker run --rm myphon
--rm参数使得容器在运行后直接自动删除
- 日历
# 引入日历模块
import calendar
# 输入指定年月
yy = int(input("输入年份: "))
mm = int(input("输入月份: "))
# 显示日历
print(calendar.month(yy,mm))
sudo docker run -it -v /home/hua/list5/myapp:/usr/src/app --rm mypython date.py
-
MySql
开启原有的数据库容器
查看原有的 test 表内容
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
from mysql_db import Mysql_db
ip='hrm_mysql' #MySQL容器名
username='docker' #用户名
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 test values(6666666,'pikaqiu');"
db.insert_data(sql1)
print(db.select_all())
db.conn_close()
运行 python 容器
sudo docker run -it -v /home/hua/list5/myapp:/usr/src/app --link=hrm_mysql --rm mypython sql.py
这里link参数是用来现容器间的互访
验证结果
-
OpenCv
import cv2 # src=cv2.imread('test.jpg') # 垂直翻转 img=cv2.flip(src,0) # 写入文件 cv2.imwrite("test-rotated.jpg", img) print('Successed.')
sudo docker run -it -v /home/hua/list5/myapp:/usr/src/app --rm mypython opencv.py
3.总结
难度不大
时间在三个小时左右