新聞中心
云原生之docker部署Flask實(shí)踐
作者:yukoyu 2022-05-26 15:02:35
云計(jì)算
云原生 Docker客戶端與 Docker守護(hù)進(jìn)程對(duì)話,后者負(fù)責(zé)構(gòu)建、運(yùn)行和分發(fā) Docker 容器的繁重工作。Docker 客戶端和守護(hù)程序可以在同一系統(tǒng)上運(yùn)行,或者您可以將 Docker 客戶端連接到遠(yuǎn)程 Docker 守護(hù)程序。

創(chuàng)新互聯(lián)是一家專業(yè)提供銀川企業(yè)網(wǎng)站建設(shè),專注與做網(wǎng)站、網(wǎng)站設(shè)計(jì)、成都h5網(wǎng)站建設(shè)、小程序制作等業(yè)務(wù)。10年已為銀川眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)絡(luò)公司優(yōu)惠進(jìn)行中。
一、Docker的了解
1、Docker 簡(jiǎn)單介紹
Docker 是一個(gè)開源的應(yīng)用容器引擎,讓開發(fā)者可以打包他們的應(yīng)用以及依賴包到一個(gè)可移植的容器中,然后發(fā)布到任何流行的Linux或Windows操作系統(tǒng)的機(jī)器上,也可以實(shí)現(xiàn)虛擬化,容器是完全使用沙箱機(jī)制,相互之間不會(huì)有任何接口。
2、Docker 使用客戶端-服務(wù)器架構(gòu)
Docker客戶端與 Docker守護(hù)進(jìn)程對(duì)話,后者負(fù)責(zé)構(gòu)建、運(yùn)行和分發(fā) Docker 容器的繁重工作。Docker 客戶端和守護(hù)程序可以在同一系統(tǒng)上運(yùn)行,或者您可以將 Docker 客戶端連接到遠(yuǎn)程 Docker 守護(hù)程序。Docker 客戶端和守護(hù)程序使用 REST API,通過(guò) UNIX 套接字或網(wǎng)絡(luò)接口進(jìn)行通信。另一個(gè) Docker 客戶端是 Docker Compose,它允許您使用由一組容器組成的應(yīng)用程序。
二、DockerFile 講解
- FROM 命令
FROM:構(gòu)建鏡像基于哪個(gè)鏡像
- MAINTAINER 命令
MAINTAINER:鏡像維護(hù)者姓名或郵箱地址
- RUN 命令
RUN:構(gòu)建鏡像時(shí)運(yùn)行的指令
- CMD 命令
CMD:運(yùn)行容器時(shí)執(zhí)行的shell環(huán)境
- VOLUME 命令
VOLUME:指定容器掛載點(diǎn)到宿主機(jī)自動(dòng)生成的目錄或其他容器
- USER 命令
USER:為RUN、CMD、 ENTRYPOINT 執(zhí)行命令指定運(yùn)行用戶
- WORKDIR 命令
WORKDIR:為 RUN、CMD、ENTRYPOINT、COPY 、 ADD 設(shè)置工作目錄
- EXPOSE 命令
EXPOSE:聲明容器的服務(wù)端口,僅是聲明
- ENV 命令
ENV:設(shè)置容器環(huán)境變量
- ADD 命令
ADD:拷貝文件或目錄到容器中,如果是URL或壓縮包便會(huì)自動(dòng)下載或自動(dòng)解壓
- COPY 命令
COPY:拷貝文件或目錄到容器中,跟ADD類似,但不具備自動(dòng)下載或解壓的功能
- ENTRYPOINT 命令
ENTRYPOINT:運(yùn)行容器時(shí)執(zhí)行的shell命令
三、Docker 快速部署python flask框架
1、創(chuàng)建一個(gè)最小的Flask
①、 app.py文件。
#!/usr/bin/env python
import flask
# Create the application.
APP = flask.Flask(__name__)
@APP.route('/')
def index():
return "hello 51CTO"
if __name__ == '__main__':
APP.run()
②、 requirements.txt 文件。
導(dǎo)出本項(xiàng)目Python依賴包。
pip freeze > requirements.txt
2、flask代碼和requirements.txt 上傳到服務(wù)器
①、準(zhǔn)備好要上傳的文件。
②、使用MobaXterm連接到服務(wù)器。
③、拖拽文件上傳到服務(wù)器。
3、Docker 環(huán)境準(zhǔn)備
①、Docker拉取 python鏡像。
docker pull python
②、編寫 Dockerfile文件。
FROM python # 基礎(chǔ)鏡像,python
MAINTAINER yukoyu # 鏡像作者信息
WORKDIR /app
# 工作目錄,這個(gè)目錄對(duì)應(yīng)于鏡像內(nèi)的工作目錄,后面的所有涉及到路徑的操作都可以
# 使用WORKDIR的相對(duì)路徑來(lái)指定
COPY requirements.txt requirements.txt
# 拷貝requirements.txt 到 鏡像中/app/requirements.txt
RUN pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
# 安裝pip包
COPY . .
# 將當(dāng)前文件中的目錄復(fù)制到/app目錄下
ENV FLASK_APP app
# 設(shè)置環(huán)境變量,讓flask run 命令能夠找到啟動(dòng)文件的位置
CMD ["flask","run","-h","0.0.0.0","-p","5000"]
# 執(zhí)行啟動(dòng)命名 flask run -h 0.0.0.0 -p 5000 列表中的每個(gè)元素之間代表空格
③、 準(zhǔn)備的目錄結(jié)構(gòu)。
4、使用Dockerfile構(gòu)建鏡像
①、構(gòu)建。
docker build -t flasktest:1.0 .
②、查看是否成功。
③、運(yùn)行flasktest鏡像。
docker run --name flasktest01 -p 5000:5000 flasktest:1.0
四、測(cè)試效果
運(yùn)行成功。
文章名稱:云原生之Docker部署Flask實(shí)踐
文章轉(zhuǎn)載:http://fisionsoft.com.cn/article/djehjge.html


咨詢
建站咨詢
