您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關(guān)dockerfile中怎么創(chuàng)建docker鏡像,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
創(chuàng)建docker鏡像
兩種方式:docker commit 和 dockerfile
commit命令是使用我們本地已經(jīng)創(chuàng)建好的容器打包成鏡像,這種方式方便簡單,但是有一個缺點(diǎn),就是這種方式生成的鏡像中會包含很多我們使用容器過程中產(chǎn)生的中間文件,可能是緩存或者垃圾文件。這樣創(chuàng)建出來的鏡像拉起的容器都會包含這些垃圾文件。所以一般不推薦這種方式。
將需要對鏡像進(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文件
# 基礎(chǔ)鏡像
FROM python:3.6
# 作者信息
MAINTAINER xingxingzaixian "942274053@qq.com"
# 設(shè)置工作目錄
WORKDIR /app
# 拷貝本地requirements.txt文件到鏡像的/app目錄下
ADD requirements.txt /app
# 把scrapyd配置文件拷貝到鏡像指定目錄
ADD scrapyd.conf ~/.scrapyd.conf
# 創(chuàng)建scrapyd數(shù)據(jù)目錄,設(shè)置時(shí)區(qū),保證鏡像時(shí)間正常,安裝python環(huán)境庫
RUN mkdir /scrapyd &&
pip install -i http://pypi.douban.com/simple/ --trusted-host=pypi.douban.com -r requirements.txt
# 開放端口,主要是scrapyd端口
EXPOSE 6800 80
# docker容器啟動時(shí)執(zhí)行scrapyd命令,啟動scrapyd
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
[scrapyd]
# 項(xiàng)目的eggs存儲位置
eggs_dir = /scrapyd/eggs
# scrapy日志的存儲目錄。如果要禁用存儲日志,請將此選項(xiàng)設(shè)置為空,logs_dir=
logs_dir = /scrapyd/logs
# scrapyitem將被存儲的目錄,默認(rèn)情況下禁用此項(xiàng),如果設(shè)置了值,會覆蓋scrapy的FEED_URI配置項(xiàng)
items_dir =
# 每個蜘蛛保持完成的工作數(shù)量。默認(rèn)為5
jobs_to_keep = 5
# 項(xiàng)目數(shù)據(jù)庫存儲的目錄
dbs_dir = /scrapyd/dbs
# 并發(fā)scrapy進(jìn)程的最大數(shù)量,默認(rèn)為0,沒有設(shè)置或者設(shè)置為0時(shí),將使用系統(tǒng)中可用的cpus數(shù)乘以max_proc_per_cpu配置的值
max_proc = 0
# 每個CPU啟動的進(jìn)程數(shù),默認(rèn)4
max_proc_per_cpu = 4
# 保留在啟動器中的完成進(jìn)程的數(shù)量。默認(rèn)為100
finished_to_keep = 100
# 用于輪詢隊(duì)列的時(shí)間間隔,以秒為單位。默認(rèn)為5.0
poll_interval = 5.0
# webservices監(jiān)聽地址
bind_address = 0.0.0.0
# 默認(rèn) http 監(jiān)聽端口
http_port = 6800
# 是否調(diào)試模式
debug = off
# 將用于啟動子流程的模塊,可以使用自己的模塊自定義從Scrapyd啟動的Scrapy進(jìn)程
runner = scrapyd.runner
application = scrapyd.app.application
launcher = scrapyd.launcher.Launcher
webroot = scrapyd.website.Root
[services]
schedule.json = scrapyd.webservice.Schedule
cancel.json = scrapyd.webservice.Cancel
addversion.json = scrapyd.webservice.AddVersion
listprojects.json = scrapyd.webservice.ListProjects
listversions.json = scrapyd.webservice.ListVersions
listspiders.json = scrapyd.webservice.ListSpiders
delproject.json = scrapyd.webservice.DeleteProject
delversion.json = scrapyd.webservice.DeleteVersion
listjobs.json = scrapyd.webservice.ListJobs
daemonstatus.json = scrapyd.webservice.DaemonStatus
主要是eggsdir、logsdir、dbs_dir三個目錄配置,其他的可以默認(rèn),這三個目錄的主目錄/scrapyd,我們在Dockerfile文件的RUN命令中添加mkdir /scrapyd來創(chuàng)建
以上創(chuàng)建完以后我們就可以使用docker build命令來構(gòu)建鏡像了
執(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è)資訊頻道。
免責(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)容。