[Docker] Docker化你的Python Flask APP 並上傳至Docker Hub
鼠年全馬鐵人挑戰 - WEEK 12
前言
本篇將透過撰寫Dockerfile來打包自己的 Docker Image,用於建置Python Flask 環境,並將打包好的Docker Image上傳至DockerHub。
Hands on Lab
建Dockerfile
、requirements.txt
建立Dockerfile
1 |
|
在requirements.txt
寫入flask
,docker run的時候會下載flask這個相依套件
1 |
|
撰寫Dockerfile
Dockerfile 開頭必須是FROM
指定一個底層映像檔(image)Dockerfile
1 |
|
接著建立index.py
1 |
|
建立並執行container
寫入上述的Dockerfile內容後,執行
1 |
|
- 注意最後面的
.
為當前目錄,是假設Dockerfile在當前目錄下,因此會以.
結尾- 注意build指令,
-t
後面接的是repository地址,因為之後要push到自己Docker Hub的位置,而每個 Repository 的前綴字都會是登入帳號,所以上述範例tom861012
為我自己的帳號
成功build一個Flask App後會看到類似上圖的內容,接著用剛build好的image以背景模式來run一個container起來。
1 |
|
看到返回的containerID後就表示成功囉!
進入到http://0.0.0.0:5000/
查看log
1 |
|
查看images
1 |
|
執行上述指令就可以觀察到新建立得tom861012/imagedemo
這個image囉
查看歷史紀錄
1 |
|
Build好的Image推到Docker Hub
在push之前務必要記得先做docker login
的動作
1 |
|
再到自己的Docker Hub頁面去看
語法回顧
FROM [Docker Image Name:TAG]
指定這個映像檔要以哪一個Image為基底來建構WORKDIR
設定工作目錄COPY
複製本地端的檔案/目錄到映像檔的指定位置中RUN
Build Image 時會執行的指令,下載相依套件EXPOSE
container 啟動時會監聽的portCMD
執行 Container 時的指令