掃二維碼與項(xiàng)目經(jīng)理溝通
我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問(wèn)/技術(shù)咨詢(xún)/運(yùn)營(yíng)咨詢(xún)/技術(shù)建議/互聯(lián)網(wǎng)交流
作者:yukoyu 2022-05-26 15:02:35
云計(jì)算
云原生 Docker客戶(hù)端與 Docker守護(hù)進(jìn)程對(duì)話(huà),后者負(fù)責(zé)構(gòu)建、運(yùn)行和分發(fā) Docker 容器的繁重工作。Docker 客戶(hù)端和守護(hù)程序可以在同一系統(tǒng)上運(yùn)行,或者您可以將 Docker 客戶(hù)端連接到遠(yuǎn)程 Docker 守護(hù)程序。

創(chuàng)新互聯(lián)是一家專(zhuān)業(yè)提供銀川企業(yè)網(wǎng)站建設(shè),專(zhuān)注與做網(wǎng)站、網(wǎng)站設(shè)計(jì)、成都h5網(wǎng)站建設(shè)、小程序制作等業(yè)務(wù)。10年已為銀川眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專(zhuān)業(yè)網(wǎng)絡(luò)公司優(yōu)惠進(jìn)行中。
Docker 是一個(gè)開(kāi)源的應(yīng)用容器引擎,讓開(kāi)發(fā)者可以打包他們的應(yīng)用以及依賴(lài)包到一個(gè)可移植的容器中,然后發(fā)布到任何流行的Linux或Windows操作系統(tǒng)的機(jī)器上,也可以實(shí)現(xiàn)虛擬化,容器是完全使用沙箱機(jī)制,相互之間不會(huì)有任何接口。
Docker客戶(hù)端與 Docker守護(hù)進(jìn)程對(duì)話(huà),后者負(fù)責(zé)構(gòu)建、運(yùn)行和分發(fā) Docker 容器的繁重工作。Docker 客戶(hù)端和守護(hù)程序可以在同一系統(tǒng)上運(yùn)行,或者您可以將 Docker 客戶(hù)端連接到遠(yuǎn)程 Docker 守護(hù)程序。Docker 客戶(hù)端和守護(hù)程序使用 REST API,通過(guò) UNIX 套接字或網(wǎng)絡(luò)接口進(jìn)行通信。另一個(gè) Docker 客戶(hù)端是 Docker Compose,它允許您使用由一組容器組成的應(yīng)用程序。
FROM:構(gòu)建鏡像基于哪個(gè)鏡像
MAINTAINER:鏡像維護(hù)者姓名或郵箱地址
RUN:構(gòu)建鏡像時(shí)運(yùn)行的指令
CMD:運(yùn)行容器時(shí)執(zhí)行的shell環(huán)境
VOLUME:指定容器掛載點(diǎn)到宿主機(jī)自動(dòng)生成的目錄或其他容器
USER:為RUN、CMD、 ENTRYPOINT 執(zhí)行命令指定運(yùn)行用戶(hù)
WORKDIR:為 RUN、CMD、ENTRYPOINT、COPY 、 ADD 設(shè)置工作目錄
EXPOSE:聲明容器的服務(wù)端口,僅是聲明
ENV:設(shè)置容器環(huán)境變量
ADD:拷貝文件或目錄到容器中,如果是URL或壓縮包便會(huì)自動(dòng)下載或自動(dòng)解壓
COPY:拷貝文件或目錄到容器中,跟ADD類(lèi)似,但不具備自動(dòng)下載或解壓的功能
ENTRYPOINT:運(yùn)行容器時(shí)執(zhí)行的shell命令
①、 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依賴(lài)包。
pip freeze > requirements.txt
①、準(zhǔn)備好要上傳的文件。
②、使用MobaXterm連接到服務(wù)器。
③、拖拽文件上傳到服務(wù)器。
①、Docker拉取 python鏡像。
docker pull python
②、編寫(xiě) 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)。
①、構(gòu)建。
docker build -t flasktest:1.0 .
②、查看是否成功。
③、運(yùn)行flasktest鏡像。
docker run --name flasktest01 -p 5000:5000 flasktest:1.0
運(yùn)行成功。

我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問(wèn)/技術(shù)咨詢(xún)/運(yùn)營(yíng)咨詢(xún)/技術(shù)建議/互聯(lián)網(wǎng)交流