成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

1.構(gòu)建docker的flask鏡像

doodlewind / 1487人閱讀

摘要:基于鏡像構(gòu)建自己的鏡像官方鏡像地址拉取官方的鏡像交互式方式生成一個容器進(jìn)入交互式容器,查看當(dāng)前版本設(shè)置的阿里云鏡像源確認(rèn)一下是否配置成功我們的使用的是系統(tǒng)使用的是包管理器命令如默認(rèn)的鏡像源也比較慢,我們也換成國內(nèi)的設(shè)

基于alpine鏡像構(gòu)建自己的flask鏡像

python官方鏡像地址:

http://hub.docker.com/_/python

拉取官方的python鏡像

docker pull python:3.7-alpine

交互式方式生成一個python容器

docker run -it --name python37 --rm python:3.7-alpine /bin/sh

進(jìn)入交互式容器,查看當(dāng)前python版本

python --version

設(shè)置pip的阿里云鏡像源

mkdir $HOME/.pip/

tee $HOME/.pip/pip.conf <<-"EOF"
[global]
trusted-host=mirrors.aliyun.com
index-url=https://mirrors.aliyun.com/pypi/simple
EOF

確認(rèn)一下是否配置成功

cat $HOME/.pip/pip.conf

我們的python使用的是alpine系統(tǒng)

alpine使用的是apk包管理器

命令如:

apk add

apk update

apk del

alpine默認(rèn)的鏡像源也比較慢,我們也換成國內(nèi)的

設(shè)置alpine鏡像源

echo http://mirrors.ustc.edu.cn/alpine/v3.7/main > /etc/apk/repositories

echo http://mirrors.ustc.edu.cn/alpine/v3.7/community >> /etc/apk/repositories

設(shè)置后要執(zhí)行

apk update && apk upgrade

安裝flask

python -m pip install -U flask

編寫test.py

from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

@app.route("/abc")
def abc():
    return "Hello abc"

if __name__ == "__main__":
    app.run()

第一種執(zhí)行這個py文件方式

python test.py

然后在另一個終端以交互式方式進(jìn)入這個python容器

docker exec -it python37 /bin/sh

下載curl命令

apk add curl

使用curl訪問flask服務(wù)

curl localhost:5000

curl localhost:5000/abc

第二種執(zhí)行這個py文件的方式

# 設(shè)置環(huán)境變量
export FLASK_APP=/test.py

# flask運行起來
flask run

第三種執(zhí)行這個py文件的方式

FLASK_APP=test.py flask run

根據(jù)上面的操作步驟,我們可以來編寫Dockerfile生成自己的flask鏡像

先退出上面的交互式容器,按:ctrl+D

創(chuàng)建一個flask目錄,并進(jìn)入

mkdir flask

cd flask

創(chuàng)建一個pip.conf文件,將pip鏡像源寫進(jìn)去

tee pip.conf <<-"EOF"
[global]
trusted-host=mirrors.aliyun.com
index-url=https://mirrors.aliyun.com/pypi/simple
EOF

編寫Dockerfile文件

FROM python:3.7-alpine
RUN echo http://mirrors.ustc.edu.cn/alpine/v3.7/main > /etc/apk/repositories && 
    echo http://mirrors.ustc.edu.cn/alpine/v3.7/community >> /etc/apk/repositories
RUN apk update && apk upgrade
RUN mkdir $HOME/.pip/
COPY ./pip.conf $HOME/.pip/
RUN pip install flask
EXPOSE 5000
CMD ["flask", "run"]

執(zhí)行docker build命令進(jìn)行鏡像構(gòu)建

docker build -t myflask:1.0 .

確認(rèn)是否構(gòu)建成功

docker images

ok!鏡像構(gòu)建成功!

怎么運行??

創(chuàng)建一個myapp目錄

mkdir myapp

放入上面的test.py文件

from flask import Flask

app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

@app.route("/abc")
def abc():
    return "Hello abc"

if __name__ == "__main__":
    app.run()

然后通過剛剛構(gòu)建的鏡像生成我們的容器

docker run --name myapp --rm -d -p 8080:5000 -v ~/myapp:/app -e FLASK_APP=/app/test.py myflask:1.0

確認(rèn)容器是否啟動

docker ps

恩,啟動了!

但是我們無法通過外網(wǎng)訪問服務(wù)器ip的8080端口訪問到容器里面

為什么?

flash默認(rèn)只允許本機(jī)訪問!

怎么辦?

停掉剛剛生成的容器

docker stop myapp

重新生成容器,指定允許ip為0.0.0.0,然外部可以訪問

docker run --name myapp --rm -d -p 8080:5000 -v ~/myapp:/app -e FLASK_APP=/app/test.py myflask:1.0 flask run -h 0.0.0.0

通過外網(wǎng)瀏覽器訪問

http://服務(wù)器ip:8080

ok,可以訪問到flask搭建的程序了!

原文鏈接:http://www.mi#/articles/34

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/43881.html

相關(guān)文章

  • 1.構(gòu)建dockerflask鏡像

    摘要:基于鏡像構(gòu)建自己的鏡像官方鏡像地址拉取官方的鏡像交互式方式生成一個容器進(jìn)入交互式容器,查看當(dāng)前版本設(shè)置的阿里云鏡像源確認(rèn)一下是否配置成功我們的使用的是系統(tǒng)使用的是包管理器命令如默認(rèn)的鏡像源也比較慢,我們也換成國內(nèi)的設(shè) 基于alpine鏡像構(gòu)建自己的flask鏡像 python官方鏡像地址: http://hub.docker.com/_/python 拉取官方的python鏡像 doc...

    makeFoxPlay 評論0 收藏0
  • docker-compose 運行 Flask 應(yīng)用最佳實踐

    摘要:現(xiàn)在有了之后,部署方式變了更加容易,不容易出現(xiàn)配置錯誤,環(huán)境不一致問題。實際應(yīng)用中,經(jīng)常遇到多個容器相配合運行一套應(yīng)用程序的情況。所以想要將應(yīng)用運行在容器中,該容器必須將該應(yīng)用所有的環(huán)境依賴安裝好。 showImg(https://segmentfault.com/img/remote/1460000017081815); 背景 ??以前部署應(yīng)用,需要各種環(huán)境配置,各種shell操作...

    fasss 評論0 收藏0
  • docker-compose 運行 Flask 應(yīng)用最佳實踐

    摘要:現(xiàn)在有了之后,部署方式變了更加容易,不容易出現(xiàn)配置錯誤,環(huán)境不一致問題。實際應(yīng)用中,經(jīng)常遇到多個容器相配合運行一套應(yīng)用程序的情況。所以想要將應(yīng)用運行在容器中,該容器必須將該應(yīng)用所有的環(huán)境依賴安裝好。 showImg(https://segmentfault.com/img/remote/1460000017081815); 背景 ??以前部署應(yīng)用,需要各種環(huán)境配置,各種shell操作...

    sumory 評論0 收藏0
  • 被忽略后臺開發(fā)神器 — Docker

    摘要:后來真正用的時候才發(fā)覺,這個簡直是個神器。容器可以被創(chuàng)建啟動停止刪除暫停等。項目由編寫,實現(xiàn)上調(diào)用了服務(wù)提供的來對容器進(jìn)行管理。此命令將會停止命令所啟動的容器,并移除網(wǎng)絡(luò)啟動已經(jīng)存在的服務(wù)容器。停止已經(jīng)處于運行狀態(tài)的容器,但不刪除它。 showImg(https://segmentfault.com/img/remote/1460000017531120?w=1200&h=500); ...

    warnerwu 評論0 收藏0
  • 被忽略后臺開發(fā)神器 — Docker

    摘要:后來真正用的時候才發(fā)覺,這個簡直是個神器。容器可以被創(chuàng)建啟動停止刪除暫停等。項目由編寫,實現(xiàn)上調(diào)用了服務(wù)提供的來對容器進(jìn)行管理。此命令將會停止命令所啟動的容器,并移除網(wǎng)絡(luò)啟動已經(jīng)存在的服務(wù)容器。停止已經(jīng)處于運行狀態(tài)的容器,但不刪除它。 showImg(https://segmentfault.com/img/remote/1460000017531120?w=1200&h=500); ...

    CollinPeng 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<