溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

dockerfile中怎么創(chuàng)建docker鏡像

發(fā)布時(shí)間:2021-07-30 16:30:24 來源:億速云 閱讀:153 作者:Leah 欄目:大數(shù)據(jù)

本篇文章給大家分享的是有關(guān)dockerfile中怎么創(chuàng)建docker鏡像,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

創(chuàng)建docker鏡像

兩種方式:docker commitdockerfile

commit命令創(chuàng)建本地鏡像

commit命令是使用我們本地已經(jīng)創(chuàng)建好的容器打包成鏡像,這種方式方便簡單,但是有一個缺點(diǎn),就是這種方式生成的鏡像中會包含很多我們使用容器過程中產(chǎn)生的中間文件,可能是緩存或者垃圾文件。這樣創(chuàng)建出來的鏡像拉起的容器都會包含這些垃圾文件。所以一般不推薦這種方式。

dockerfile

將需要對鏡像進(jìn)行的操作全部寫到一個Dockerfile名字的文件中,然后使用docker build命令從這個文件中創(chuàng)建鏡像。這種方法可以使鏡像的創(chuàng)建變得透明和獨(dú)立化,并且創(chuàng)建過程可以被重復(fù)執(zhí)行。Dockerfile文件以行為單位,行首為Dockerfile命令,命令都是大寫形式,其后緊跟著的是命令的參數(shù)。

先創(chuàng)建一個空目錄mkdir /usr1/xmla_python,然后在目錄下創(chuàng)建Dockerfile文件


  1. # 基礎(chǔ)鏡像

  2. FROM python:3.6


  3. # 作者信息

  4. MAINTAINER xingxingzaixian "942274053@qq.com"


  5. # 設(shè)置工作目錄

  6. WORKDIR /app


  7. # 拷貝本地requirements.txt文件到鏡像的/app目錄下

  8. ADD requirements.txt /app


  9. # 把scrapyd配置文件拷貝到鏡像指定目錄

  10. ADD scrapyd.conf ~/.scrapyd.conf


  11. # 創(chuàng)建scrapyd數(shù)據(jù)目錄,設(shè)置時(shí)區(qū),保證鏡像時(shí)間正常,安裝python環(huán)境庫

  12. RUN mkdir /scrapyd  &&

  13.        pip install -i http://pypi.douban.com/simple/ --trusted-host=pypi.douban.com -r requirements.txt


  14. # 開放端口,主要是scrapyd端口

  15. EXPOSE 6800 80


  16. # docker容器啟動時(shí)執(zhí)行scrapyd命令,啟動scrapyd

  17. CMD ["scrapyd", "redis-server"]

創(chuàng)建requirements.txt,主要是用來初始化python環(huán)境

  scrapy==1.5.0scrapyd==1.2.0redis==2.10.6scrapy-redis==0.6.8lxml==4.2.1requests==2.18.4

創(chuàng)建scrapyd.conf文件,主要是配置scrapyd環(huán)境,在我們的Dockerfile文件中使用ADD

 
  1. [scrapyd]

  2. # 項(xiàng)目的eggs存儲位置

  3. eggs_dir = /scrapyd/eggs


  4. # scrapy日志的存儲目錄。如果要禁用存儲日志,請將此選項(xiàng)設(shè)置為空,logs_dir=

  5. logs_dir = /scrapyd/logs


  6. # scrapyitem將被存儲的目錄,默認(rèn)情況下禁用此項(xiàng),如果設(shè)置了值,會覆蓋scrapy的FEED_URI配置項(xiàng)

  7. items_dir =


  8. # 每個蜘蛛保持完成的工作數(shù)量。默認(rèn)為5

  9. jobs_to_keep = 5


  10. # 項(xiàng)目數(shù)據(jù)庫存儲的目錄

  11. dbs_dir = /scrapyd/dbs


  12. # 并發(fā)scrapy進(jìn)程的最大數(shù)量,默認(rèn)為0,沒有設(shè)置或者設(shè)置為0時(shí),將使用系統(tǒng)中可用的cpus數(shù)乘以max_proc_per_cpu配置的值

  13. max_proc = 0


  14. # 每個CPU啟動的進(jìn)程數(shù),默認(rèn)4

  15. max_proc_per_cpu = 4


  16. # 保留在啟動器中的完成進(jìn)程的數(shù)量。默認(rèn)為100

  17. finished_to_keep = 100


  18. # 用于輪詢隊(duì)列的時(shí)間間隔,以秒為單位。默認(rèn)為5.0

  19. poll_interval = 5.0


  20. # webservices監(jiān)聽地址

  21. bind_address = 0.0.0.0


  22. # 默認(rèn) http 監(jiān)聽端口

  23. http_port = 6800


  24. # 是否調(diào)試模式

  25. debug = off


  26. # 將用于啟動子流程的模塊,可以使用自己的模塊自定義從Scrapyd啟動的Scrapy進(jìn)程

  27. runner = scrapyd.runner

  28. application = scrapyd.app.application

  29. launcher = scrapyd.launcher.Launcher

  30. webroot = scrapyd.website.Root


  31. [services]

  32. schedule.json     = scrapyd.webservice.Schedule

  33. cancel.json       = scrapyd.webservice.Cancel

  34. addversion.json   = scrapyd.webservice.AddVersion

  35. listprojects.json = scrapyd.webservice.ListProjects

  36. listversions.json = scrapyd.webservice.ListVersions

  37. listspiders.json  = scrapyd.webservice.ListSpiders

  38. delproject.json   = scrapyd.webservice.DeleteProject

  39. delversion.json   = scrapyd.webservice.DeleteVersion

  40. listjobs.json     = scrapyd.webservice.ListJobs

  41. daemonstatus.json = scrapyd.webservice.DaemonStatus

主要是eggsdir、logsdir、dbs_dir三個目錄配置,其他的可以默認(rèn),這三個目錄的主目錄/scrapyd,我們在Dockerfile文件的RUN命令中添加mkdir /scrapyd來創(chuàng)建

以上創(chuàng)建完以后我們就可以使用docker build命令來構(gòu)建鏡像了

dockerfile中怎么創(chuàng)建docker鏡像

執(zhí)行docker build -t scrapy_python .命令構(gòu)建鏡像,其中-t參數(shù)指定鏡像名,.則為Dockerfile文件的路徑

以上就是dockerfile中怎么創(chuàng)建docker鏡像,小編相信有部分知識點(diǎn)可能是我們?nèi)粘9ぷ鲿姷交蛴玫降摹OM隳芡ㄟ^這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI