Docker學習筆記_使用Dockerfile創建flask的一個鏡像


一、實驗環境

      1、宿主機OS:Win10 64位

      2 、虛擬機OS:Ubuntu18.04 64位    虛擬機名稱:Ubuntu18VM1   虛擬機IP:192.168.8.25

      3、賬號:docker    

二、簡要步驟

  1.編寫一個dockerfile文件
  2.編寫外部文件requirements.txt
  3.編寫一個app.py文件
  4.創建鏡像
  5.查看鏡像
  6.創建並運行容器
  7.從瀏覽器里查看

三、詳細步驟

       1、建立一個docker的工作文件夾dokerspace,進入這個文件夾,編寫dockerfile
           $vi Dockerfile

          

           文件Dockerfile內容:

           FROM python:3.5
           WORKDIR /app
      ADD . /app
           RUN pip install -r requirements.txt
           EXPOSE 80
           ENV NAME World
           CMD ["python","app.py"]
          

  2、編寫外部文件requirements.txt

            Flask

            Redis

       3、編寫app.py,3、這里app.py是一個簡單的Python應用文件內容:

from flask import Flask
from redis import Redis,RedisError
import os
import socket

redis = Redis(host="redis",db=0,socket_connect_timeout=2,socket_timeout=2)
app = Flask(__name__)
@app.route("/")
def hello():
    try:
        visits = redis.incr("counter")
    except RedisError:
        visits = "<i>cannot connect to Redis,counter disababled</i>"
    html = "<h3>Hello {name}!</h3>" \
           "<b>Hostname:</b>{hostname}<br>" \
           "<b>Visits:</b>{visits}"

    return html.format(name=os.getenv("NAME","world"),hostname=socket.gethostname(),visits=visits)

if __name__=="__main__":
    app.run(host='0.0.0.0',port=80)

       4、創建鏡像

       $docker build -t hellodocker . 
       其中,docker build是構建鏡像的指令;-t參數指定了生成的鏡像的名稱為hellodocker;最后的點,表明是當前目錄。如果Dockerfile不在此目錄,則需要將點替換為

Dockerfile所在的目錄。

       5、查看鏡像

       $sudo docker ps

       6、創建並啟動容器

       $sudo docker run -d -p 5000:80 hellodocker

       

       7、從宿主機瀏覽器里查看

      

        
         至此,一個簡單的基於flask鏡像創建的容器已經運行。


四、遇到問題及處理

     1、遇到問題:在試驗中,能創建鏡像,但無法創建並啟動容器。

          經檢查,是app.py文件里存在bug。把此文件放到一個Python的環境里,排查問題,直到能正常解釋執行。修正本實驗中的app.py后,后續步驟正常進行。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM