第5次实践作业

(1)环境安装

根据Python官方镜像参考

  • 最终项目结构

  • 配置文件

    • Dockerfile

      FROM python:3
      
      MAINTAINER Dicky
      
      WORKDIR /usr/src/app
      
      COPY requirements.txt ./
      
      RUN pip install --no-cache-dir -r requirements.txt
      
      ENTRYPOINT ["python"]
      
    • requirements.txt(基于本次实验要求)

      PyMySQL
      opencv-python
      
  • 制作镜像docker build -t python-modulesinstalled .

(2)代码实现

  • helloworld

    • docker run -it --rm --name my-running-script -v /home/admin/dk_python/app:/usr/src/app my-python helloworld.py
      

  • calendar

    • docker run -it --rm --name my-running-script -v /home/admin/dk_python/app:/usr/src/app my-python cal.py
      

  • mysql数据库操作

    采用的镜像是之前制作的

    • 运行mysql容器

      docker build -t pm_mysql . && docker run -it --name pm_mysql pm_mysql
      
    • 查看mysql容器的ip地址(连接时要用到)

      docker inspect pm_mysql
      

    • 编写连接的python文件 (参考资料)

      con-to-mysql.py

      #!/usr/bin/python3
      # -*- coding: UTF-8 -*-
      
      import pymysql
      
      # 打开数据库连接
      db = pymysql.connect("172.18.0.2","docker","123456","S_C" )	# 第一个参数填上面的ip地址
      
      # 使用cursor()方法获取操作游标
      cursor = db.cursor()
      
      # SQL 插入语句
      sql = """INSERT INTO S(Sno,
               Sname, Sex)
               VALUES ('031700000', 'XiaoMing', 'M')"""
      try:
         # 执行sql语句
         cursor.execute(sql)
         # 提交到数据库执行
         db.commit()
      except:
         # 如果发生错误则回滚
         db.rollback()
      
      # 关闭数据库连接
      db.close()
      
    • 执行命令docker run -it --rm --name my-running-script -v /home/admin/dk_python/app:/usr/src/app my-python con-to-mysql.py

    • 在容器中查看

  • OpenCV(图片的平移)

    • opencv.py
    import cv2
    import numpy as np
    
    img = cv2.imread('test.jpg',0)
    rows,cols = img.shape
    
    M = np.float32([[1,0,100],[0,1,50]])
    dst = cv2.warpAffine(img,M,(cols,rows))
    
    cv2.imwrite("test-output.jpg", dst, [int(cv2.IMWRITE_JPEG_QUALITY), 100])
    
    • 命令执行

      docker run -it --rm --name my-running-script -v /home/admin/dk_python/app:/usr/src/app my-python opencv.py
      
    • 测试结果

(3)总结

  • 合计时间:
    • 5小时左右
  • 踩过的坑
    • 连接数据库时,由于不在一个Docker network下,容器名不能映射到ip地址,所以得手动输入ip。

猜你喜欢

转载自www.cnblogs.com/dicky99/p/12904838.html