[ Docker ] 建立 Docker 版的 Flask CRUD

學習目標

  • Docker 運作流程
  • Docker 指令
  • Dockerfile 撰寫
  • Python Flask 的 CRUD 撰寫
  • Postman 使用

Docker Flask 範例說明

此範例說明如何建立 Docker 版的 Python Flask CRUD

Docker 是一個開放原始碼軟體專案,讓應用程式布署在軟體容器下的工作可以自動化進行,藉此在作業系統上,  
提供一個額外的軟體抽象層,以及作業系統層虛擬化的自動管理機制。
Flask 是一個使用 Python 的輕量級 Web 應用框架  
Create 新增  
Read   讀取  
Update 更新  
Delete 刪除  

Docker 運作流程

Docker Image Environment

  • Ubuntu 16.04
  • Python 2.7
  • Flask 0.12.2

Docker Engine 下載與安裝

Dockerfile 說明

第  2 行  使用 ubuntu 16.04 版本
第  3 行  此 Dockerfile 維護者資訊
第  5 行  透過 apt-get 更新
第  6 行  透過 apt-get 安裝 python-pip、python-dev、build-essential 套件
第  7 行  複製指定檔案到 Container 中,亦即是複製 Dockerfile、flask-docker.py、requirements.txt 檔案到 /flask-app 目錄中
第  8 行  切換工作目錄到 /flask-app 目錄中
第  9 行  透過 pip 安裝 requirements.txt 檔案中的套件,亦即是安裝 Flask 的 0.12.2 版本
第 10 行  Expose Container 中的埠號
第 11 行  使用 python 指令
第 12 行  執行 flask-docker.py 程式

Docker Command 說明

在 Windows 環境執行指令時,請移除最前面的 sudo ( 粗體字的部份 )

  • 1    從 Docker Hub 取得 mmosconii 的 flask-sample Image
    • sudo docker pull mmosconii/flask-sample
  • 2    執行 flask-sample Image,命名為 flask-sample-dev,
          埠號對應主機的 8888 通訊埠轉發到 Container 的 8888 通訊埠
    • sudo docker run -d --name=flask-sample-dev -p 8888:8888 mmosconii/flask-sample
  • 3    查看名字為 flask-sample-dev 的 Container Log
    • sudo docker logs -f flask-sample-dev
  • 4    進入正在執行的 Docker Container
    • sudo docker exec -it flask-sample-dev bash
  • 5    刪除 Image
    • sudo docker rmi -f mmosconii/flask-sample
  • 6    刪除 Container
    • sudo docker rm -f flask-sample-dev
  • 7    停止 Container
    • sudo docker stop flask-sample-dev
  • 8    重啟 Container
    • sudo docker restart flask-sample-dev
  • 9    查看本地端的 Image
    • sudo docker images
  • 10  查看目前 Container 狀態
    • sudo docker ps -a
  • 11  確認 Docker 版本
    • docker --version
  • 12  透過 Dockerfile 建立 Docker Image
    • sudo docker build --no-cache -t mmosconii/flask-sample .
  • 13  登入到 Docker Hub
    • sudo docker login
  • 14  上傳 Image 到 Docker Hub
    • sudo docker push mmosconii/flask-sample

API 說明

Docker Hub
GitHub
List of blogs
ALL RIGHTS RESERVED. COPYRIGHT © 2018. Designed and Coded by Makee.io