99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

【Docker】命令使用大全

gVTR_Unf ? 來(lái)源:機(jī)器視覺(jué)CV ? 2020-09-07 16:40 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

【Docker】命令使用大全

目標(biāo):

編寫(xiě)自己的 Dockerfile 鏡像

創(chuàng)建一個(gè)簡(jiǎn)單的 Web 界面

使用鏡像創(chuàng)建一個(gè) Flask APP

有關(guān) Dockerfile 的相關(guān)知識(shí),我在后面的文章會(huì)進(jìn)行講解,今天主要是實(shí)際操作

所需工具:安裝好 Docker 的服務(wù)器或者本地電腦,筆者使用的是服務(wù)器:Ubuntu 系統(tǒng)

創(chuàng)建一個(gè) Flask APP

首先創(chuàng)建一個(gè) Flask app

app.py

fromflaskimportFlask,render_template importrandom app=Flask(__name__) #listoffoximages,用來(lái)進(jìn)行頁(yè)面展示的 images=[ "https://media0.giphy.com/media/Ko5dZRMv9uJFu/giphy.gif", "https://media.tenor.com/images/6461359b4205a95bf1f4374a3aa2acec/tenor.gif", "https://i.imgur.com/dUBv79d.gif", "https://media2.giphy.com/media/dvBgr7pA6FTJOMOALY/giphy.gif", "https://images-wixmp-ed30a86b8c4ca887773594c2.wixmp.com/f/45dfcad0-23ff-4af4-8c3f-b4b68f6edab4/d5hxh3z-aac8f004-e5db-4030-8e0c-62b899b4d0ce.gif" ] @app.route('/') defindex(): url=random.choice(images) returnrender_template('index.html',url=url) if__name__=="__main__": app.run(host="0.0.0.0")

創(chuàng)建一個(gè)requestment.txt文件,把 Python 需要的包及其版本放進(jìn)去,方便后續(xù)安裝

requestment.txt

Flask==0.10.1

創(chuàng)建一個(gè)簡(jiǎn)單的 Web 頁(yè)面

templates/index.html

創(chuàng)建一個(gè) templates 的文件夾,并在此文件夾下創(chuàng)建 index.html 文件

body{ background:black; color:white; } div.container{ max-width:500px; margin:100pxauto; border:20pxsolidwhite; padding:10px; text-align:center; } h4{ text-transform:uppercase; }

FoxGifoftheday

Courtesy:AICV

Dockerfile

我們基于 Alpine 構(gòu)建一個(gè)鏡像Alpine:Alpine Linux 的最小 Docker 映像,具有完整的包索引,大小只有 5mb,非常實(shí)用。

對(duì)命令的含義進(jìn)行了注釋

#基礎(chǔ)鏡像 FROMalpine:3.9 #因?yàn)槲覀冃枰\(yùn)行 Python,所以需要配置環(huán)境:安裝 Python 和 pip 到Apline Linux 中,該命令不僅會(huì)安裝 pip 包,也會(huì)安裝其他的依賴(lài)(如 Python 的解釋器) #RUN是Docker的命令,apkadd--updatepy2-pip類(lèi)似于Linux命令 RUNapkadd--updatepy2-pip #拷貝本地文件requirements.txt(默認(rèn)與Dockerfile同一文件夾)到容器的/usr/src/app/文件夾下,會(huì)自動(dòng)創(chuàng)建 COPYrequirements.txt/usr/src/app/ #安裝所需要的python包 RUNpipinstall--no-cache-dir-r/usr/src/app/requirements.txt #拷貝其他文件 COPYapp.py/usr/src/app/ COPYtemplates/index.html/usr/src/app/templates/ #容器需要暴露端口,F(xiàn)lask程序運(yùn)行的端口 EXPOSE5000 #運(yùn)行python程序,該命令的意思是python/usr/src/app/app.py CMD["python","/usr/src/app/app.py"]

目錄結(jié)構(gòu)如下所示:

編譯鏡像

編寫(xiě)完 Dockerfile,接下來(lái)就是進(jìn)行編譯了,使用 docker bulid

是 Docker hub 的用戶(hù)名命令最后有個(gè) . 不要漏了,其代表的含義是 Dockerfile 所在的路徑

dockerbuild-t/myapp.

下面是編譯過(guò)程中的一些輸出:

SendingbuildcontexttoDockerdaemon6.656kB Step1/8:FROMalpine:3.9 --->78a2ce922f86 Step2/8:RUNapkadd--updatepy2-pip --->Usingcache --->ba2fa67ca853 Step3/8:COPYrequirements.txt/usr/src/app/ --->Usingcache --->43511e5ced4b Step4/8:RUNpipinstall--no-cache-dir-r/usr/src/app/requirements.txt --->Runningin97289c7eda9d CollectingFlask==0.10.1(from-r/usr/src/app/requirements.txt(line1)) Downloadinghttps://files.pythonhosted.org/packages/db/9c/149ba60c47d107f85fe52564133348458f093dd5e6b57a5b60ab9ac517bb/Flask-0.10.1.tar.gz(544kB) CollectingWerkzeug>=0.7(fromFlask==0.10.1->-r/usr/src/app/requirements.txt(line1)) Downloadinghttps://files.pythonhosted.org/packages/cc/94/5f7079a0e00bd6863ef8f1da638721e9da21e5bacee597595b318f71d62e/Werkzeug-1.0.1-py2.py3-none-any.whl(298kB) CollectingJinja2>=2.4(fromFlask==0.10.1->-r/usr/src/app/requirements.txt(line1)) Downloadinghttps://files.pythonhosted.org/packages/30/9e/f663a2aa66a09d838042ae1a2c5659828bb9b41ea3a6efa20a20fd92b121/Jinja2-2.11.2-py2.py3-none-any.whl(125kB) Collectingitsdangerous>=0.21(fromFlask==0.10.1->-r/usr/src/app/requirements.txt(line1)) Downloadinghttps://files.pythonhosted.org/packages/76/ae/44b03b253d6fade317f32c24d100b3b35c2239807046a4c953c7b89fa49e/itsdangerous-1.1.0-py2.py3-none-any.whl CollectingMarkupSafe>=0.23(fromJinja2>=2.4->Flask==0.10.1->-r/usr/src/app/requirements.txt(line1)) Downloadinghttps://files.pythonhosted.org/packages/b9/2e/64db92e53b86efccfaea71321f597fa2e1b2bd3853d8ce658568f7a13094/MarkupSafe-1.1.1.tar.gz Installingcollectedpackages:Werkzeug,MarkupSafe,Jinja2,itsdangerous,Flask Runningsetup.pyinstallforMarkupSafe:started Runningsetup.pyinstallforMarkupSafe:finishedwithstatus'done' Runningsetup.pyinstallforFlask:started Runningsetup.pyinstallforFlask:finishedwithstatus'done' SuccessfullyinstalledFlask-0.10.1Jinja2-2.11.2MarkupSafe-1.1.1Werkzeug-1.0.1itsdangerous-1.1.0 Removingintermediatecontainer97289c7eda9d --->9dbc17abb6f7 Step5/8:COPYapp.py/usr/src/app/ --->0c69faca84cb Step6/8:COPYtemplates/index.html/usr/src/app/templates/ --->a0e7ce10250b Step7/8:EXPOSE5000 --->Runninginf570b863937d Removingintermediatecontainerf570b863937d --->ba48b6b1c4bd Step8/8:CMD["python","/usr/src/app/app.py"] --->Runningin2a73d498ea52 Removingintermediatecontainer2a73d498ea52 --->b64a5a0d5dd0 Successfullybuiltb64a5a0d5dd0 Successfullytaggedaicv/myfirstapp:latest

編譯完成后,我們可以看到鏡像出現(xiàn)了

運(yùn)行鏡像為容器

我們使用創(chuàng)建的鏡像運(yùn)行一個(gè)容器,將容器中的 5000端口映射到宿主機(jī)的 8899 端口

dockerrun-p-d8899:5000--namemyfirstappaicv/myfirstapp

打開(kāi) http://localhost:8899或者 http://ip:8899就能看到頁(yè)面了,刷新頁(yè)面可以看到不同的畫(huà)面。

推送到遠(yuǎn)程倉(cāng)庫(kù)

要推送到遠(yuǎn)程倉(cāng)庫(kù),首先需要登錄你自己的 Docker hub 賬號(hào)

dockerlogin dokckerpushYOUR_USERNAME/myfirstapp

本節(jié)我們完成了一個(gè)簡(jiǎn)單的 Flask APP 的部署工作,了解了 Dockerfile 的基本使用,并將鏡像推送到我們的遠(yuǎn)程倉(cāng)庫(kù)中。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    13

    文章

    9791

    瀏覽量

    87923
  • 鏡像
    +關(guān)注

    關(guān)注

    0

    文章

    178

    瀏覽量

    11242
  • Docker
    +關(guān)注

    關(guān)注

    0

    文章

    515

    瀏覽量

    12950

原文標(biāo)題:【Docker】項(xiàng)目實(shí)戰(zhàn),部署自己的APP

文章出處:【微信號(hào):Unfinished_coder,微信公眾號(hào):機(jī)器視覺(jué)CV】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    docker無(wú)法啟用怎么解決?

    mengxing@mengxing-virtual-machine:/etc/docker$ sudo systemctl daemon-reload
    發(fā)表于 06-23 07:17

    Docker Volume管理命令大全

    Docker Volume管理命令大全
    的頭像 發(fā)表于 05-28 17:14 ?194次閱讀

    Linux常用命令大全

    Linux常用命令是指在Linux操作系統(tǒng)中廣泛使用的命令工具,這些命令工具可以完成各種不同的任務(wù),如管理文件和目錄、操作進(jìn)程、網(wǎng)絡(luò)通信、軟件安裝等。
    的頭像 發(fā)表于 05-03 18:08 ?1114次閱讀

    Docker Compose的常用命令

    大家好,今天給大家分享Docker Compose的常用命令,以及docker-compose文件的屬性。Docker Compose 是一個(gè)用于定義和運(yùn)行多容器
    的頭像 發(fā)表于 04-30 13:40 ?438次閱讀

    Docker基本命令及其用例

    Docker 已迅速成為容器化應(yīng)用程序的事實(shí)標(biāo)準(zhǔn)。作為開(kāi)發(fā)人員或 DevOps 工程師/系統(tǒng)管理員,熟悉 Docker 對(duì)于高效部署現(xiàn)代、可移植的應(yīng)用程序至關(guān)重要。
    的頭像 發(fā)表于 04-30 10:04 ?257次閱讀

    Docker常用命令大全

    Docker 是一種開(kāi)源的應(yīng)用容器引擎,廣泛應(yīng)用于開(kāi)發(fā)、部署和運(yùn)行分布式應(yīng)用。掌握 Docker 常用命令對(duì)于開(kāi)發(fā)人員和運(yùn)維人員來(lái)說(shuō)非常重要。本文將為大家整理常用的Docker
    的頭像 發(fā)表于 04-22 12:47 ?390次閱讀

    【技術(shù)案例】Android in Docker

    Docker介紹Docker是一個(gè)開(kāi)源的容器化平臺(tái),用于打包、分發(fā)和運(yùn)行應(yīng)用程序。它通過(guò)將應(yīng)用及其所有依賴(lài)打包到獨(dú)立的容器中,確保應(yīng)用在不同環(huán)境中一致運(yùn)行。Docker提供快速部署、隔離性強(qiáng)和高效
    的頭像 發(fā)表于 04-02 16:33 ?660次閱讀
    【技術(shù)案例】Android in <b class='flag-5'>Docker</b>

    docker的基本命令和使用示例

    DotCloud 公司是一家 PAAS 服務(wù)提供商,從 docker 的出身也可以看出它的主要功能和方向。
    的頭像 發(fā)表于 01-06 15:59 ?450次閱讀

    docker-compose配置文件內(nèi)容詳解以及常用命令介紹

    。 使用 docker-compose.yml 定義構(gòu)成應(yīng)用程序的服務(wù),這樣它們可以在隔離環(huán)境中一起運(yùn)行。 最后,執(zhí)行 docker-compose up 命令來(lái)啟動(dòng)并運(yùn)行整個(gè)應(yīng)用程序。 二、
    的頭像 發(fā)表于 12-02 09:29 ?4417次閱讀
    <b class='flag-5'>docker</b>-compose配置文件內(nèi)容詳解以及常用<b class='flag-5'>命令</b>介紹

    如何在樹(shù)莓派上安裝Docker容器

    ,確保你的系統(tǒng)是最新的。打開(kāi)終端,輸入以下命令: sudo apt updatesudo apt upgrade 3. 安裝Docker 步驟1:添加Docker的官方GPG密鑰 curl -fsSL https://downl
    的頭像 發(fā)表于 11-11 11:38 ?1927次閱讀

    Docker運(yùn)行環(huán)境安裝

    作者:京東科技 林中 Docker是一個(gè)開(kāi)放的平臺(tái),用于開(kāi)發(fā)、發(fā)布和運(yùn)行應(yīng)用程序。Docker分離了應(yīng)用程序和運(yùn)行應(yīng)用的基礎(chǔ)設(shè)施,從而實(shí)現(xiàn)了軟件的快速交付。利用docker提供的一系列功能,包括構(gòu)建
    的頭像 發(fā)表于 10-29 11:28 ?661次閱讀

    Linux實(shí)用命令大全

    Linux實(shí)用命令大全
    的頭像 發(fā)表于 10-23 13:50 ?645次閱讀
    Linux實(shí)用<b class='flag-5'>命令</b><b class='flag-5'>大全</b>

    手動(dòng)構(gòu)建Docker鏡像的方法

    不推薦使用docker commit命令,而應(yīng)該使用更靈活、更強(qiáng)大的dockerfile來(lái)構(gòu)建docker鏡像。
    的頭像 發(fā)表于 08-05 15:30 ?907次閱讀
    手動(dòng)構(gòu)建<b class='flag-5'>Docker</b>鏡像的方法

    ARM平臺(tái)實(shí)現(xiàn)Docker容器技術(shù)

    下載鏡像并運(yùn)行容器的方法。1 Docker安裝1.1 安裝方法(1)安裝依賴(lài)包 打開(kāi)Ubuntu,確保Ubuntu可正常訪(fǎng)問(wèn)互聯(lián)網(wǎng),執(zhí)行如下命令安裝Docker依賴(lài)包。 Host#sudo
    發(fā)表于 07-25 14:36

    ARM平臺(tái)實(shí)現(xiàn)Docker容器技術(shù)

    的方法。1 Docker安裝1.1 安裝方法(1)安裝依賴(lài)包 打開(kāi)Ubuntu,確保Ubuntu可正常訪(fǎng)問(wèn)互聯(lián)網(wǎng),執(zhí)行如下命令安裝Docker依賴(lài)包。 Host#sudo apt-get update
    發(fā)表于 07-17 11:05