zoukankan      html  css  js  c++  java
  • 系统综合实践第5次实践作业

    一、python镜像布置

    1.目录结构

    2.基础文档编写

    • Dockerfile
    FROM python:3
    MAINTAINER zys<1242808025@qq.com>
    WORKDIR /app
    COPY requirements*.txt ./
    # 修改源并安装依赖
    RUN pip install -r requirements.txt -i https://pypi.douban.com/simple 
    ENTRYPOINT ["python"]    # 实现命令行式调用容器
    CMD ["hello.py"] #默认打开文件
    
    • requirements.txt
    PyMySQL
    opencv-python
    
    • 搭建镜像
    sudo docker build -t docker-python . #自定义镜像
    


    二、简单程序的部署运行

    1. hello world

    • hello.py
    # hello.py
    print('Hello world!')
    

    -v将本地目录挂载到python工作目录以方便代码修改
    --rm运行完毕后自动移除容器

    sudo docker run --rm -v /home/ubuntu/python/app:/app docker-python hello.py
    

    2. 日历输出 菜鸟教程

    • date.py
    # 引入日历模块
    import calendar
     
    # 输入指定年月
    yy = int(input("输入年份: "))
    mm = int(input("输入月份: "))
     
    # 显示日历
    print(calendar.month(yy,mm))
    

    注意:交互式终端需要 -it 指令

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

    3. mysql数据库操作 使用实验二的容器

    使用镜像docker-mysql-zys 以后台模式启动一个容器,并将容器命名为mysql5,将容器的3306 端口映射到主机的 3306 端口

    sudo docker run --name mysql5 -p 3306:3306 -d docker-mysql-zys 
    

    • 进入容器
    sudo docker exec -it  mysql5 /bin/bash
    

    -使用指定用户名和密码进入数据库使用ZYS账户登录mysql,密码是123456

    mysql -u ZYS -p
    

    • 查看已经存在的数据库
    show databases;
    


    可以看到此时是一张空表。

    use docker-mysql
    show tables;
    select * from user;
    

    • mysql_db.py
    import pymysql
    
    # 打开数据库连接
    db = pymysql.connect("mysql5", "ZYS", "123456", "docker_mysql")
    
    # 第一个参数是本地容器名字
    # 第二三个参数是数据库的使用用户与密码
    # 第四个参数是数据库名称
    # 创建游标对象
    
    cursor = db.cursor()
    # 先查询一次数据库数据
    sql = """select * FROM user"""
    cursor.execute(sql)
    results = cursor.fetchall()
    print(results)
    
    # SQL插入语句
    sql = """insert user(id,name,sex)
    	values('031702100','yyy','male')"""
    cursor.execute(sql)
    db.commit()
    
    # 插入完成后再读取一次数据库数据
    sql = """select * FROM user"""
    cursor.execute(sql)
    results = cursor.fetchall()
    print(results)
    
    # 关闭数据库连接
    db.close()
    
    
    • 接着执行以下指令:
    sudo docker run -it --rm -v /home/ubuntu/python/app:/app --link=mysql5 docker-python mysql_db.py  
    

    这里link参数是用来现容器间的互访,mysql5是容器名

    • 最后查看程序成功运行后user表中的内容,可以看到成功地插入了一条数据:

    4.opencv

    • opcv.py
    #简单的生成灰度图形
    import cv2
    
    img = cv2.imread("image.jpg", 0)
    cv2.imwrite('result.jpg', img)
    print("Successlly!")
    
    sudo docker run --rm -v /home/ubuntu/python/app:/app docker-python opcv.py 
    


    三、实验小结
    这次实验比较简单,耗时和上次比少了非常多,实验过程没遇到什么问题,就是在运行容器时忘记命名,在执行mysql操作时报错“无法找到这个容器”,重新明明就可以了。另外,实验过程发现相关命令的使用还是比较陌生的,需要继续将强。
    附上:docker run

    项目 时间
    搭建镜像 0.5h
    各个程序部署运行 4h
    博客 1h
  • 相关阅读:
    docker 部署springboot
    CentOS 7 安装docker
    008自瞄原理
    007根据矩阵基地址绘制方框
    006寻找矩阵
    005分析其他人基地址
    易语言读取鼠标坐标x,y
    003获取鼠标x,y
    Oracle单机Rman笔记[0]---环境准备
    系统优化设计笔记--曹大公众号文章笔记
  • 原文地址:https://www.cnblogs.com/zys99/p/12931268.html
Copyright © 2011-2022 走看看