用python批量创建docker_「docker实战篇」python的docker-docker镜像的创建使用dockerfile(3...
從上篇docker commit學(xué)習(xí)可以了解到,鏡像的定制其實每一層添加的配置和文件,如果把每一層的修改配置,修改文件,都寫入腳本,用這個腳本構(gòu)建定制鏡像,無法重復(fù)的問題,鏡像構(gòu)建透明性的問題,體積的問題都會解決。這個腳本就是Dockerfile。
Dockerfile什么是dockerfile一個文本文件,其內(nèi)包含了一條條的指令,每一條指令構(gòu)建一層,因此每一條指令的內(nèi)容,就是描述該層應(yīng)當(dāng)如何構(gòu)建。
了解FROMFROM指定基礎(chǔ)鏡像,基礎(chǔ)鏡像是必須指定的。而FROM就是指定基礎(chǔ)鏡像,因此一個Dockerfile中From是必備的指令,并且必須是第一條指令。在dockerhub上有很多高質(zhì)量的docker鏡像,有可以直接拿來使用的基礎(chǔ)鏡像:nginx,tomcat,java,python,php,mongodb。搜尋最符合使用的的一個基礎(chǔ)鏡像。
了解RUNRUN執(zhí)行命令是用來執(zhí)行命令行命令的。由于命令行的強大能力,RUN指令在定制鏡像時最常用的指令之一。shell?格式:?RUN,就像直接在命令行中輸入的命令一樣
exec?格式:?RUN["可執(zhí)行文件","參數(shù)1","參數(shù)2"],這更像是函數(shù)調(diào)用中的格式
不建議的寫成下面這種Dockerfile
> 之前說過Dockerfile每個指令都會創(chuàng)建一個層,下面這種寫法就是創(chuàng)建了7層的鏡像,這樣做就完全是沒有意義的,很多運行不需要的東西都被裝到這個鏡像里面去了,編譯環(huán)境更新軟件包,產(chǎn)生非常臃腫層非常多的鏡像,不僅僅增加了構(gòu)建部署的時間,也很容易出錯,也是初學(xué)docker容易犯的錯誤,之前我也犯過。鏡像的層數(shù)是有限制的,最大層不能超過127層。鏡像是多層存儲的,在加入一層就是,之前的層不會被修改。
正確的方式。一定要做到每一層是需要的東西,任何無關(guān)的東西都要被清理掉。這也是制作鏡像容易犯的錯誤,之前安裝的文件沒有清理。
實戰(zhàn)編寫Dockerfile創(chuàng)建目錄,存放Dockerfilemkdir?newNginx
cd?newNginx
編寫 DockerfileFrom?nginx
RUN?echo?'
welcome?to?idig8.com?study?docker
'?>?/usr/share/nginx/html/index.html構(gòu)建Dockerfiledocker?build?-t?nginx:v2?.
docker?images
推送docker hub推送
>登錄docker hub#先配置dns?8.8.8.8
vi?/etc/resolv.conf
docker?login
設(shè)置倉庫地址,登錄hub.docker.com
更改名稱docker?tag?nginx:v2?zhugeaming/nginx:v2
完成推送docker?push?zhugeaming/nginx:v2
查看結(jié)果
PS:其實在開發(fā)的時候,多任務(wù)的時候,只需要一個python3和mitmproxy的鏡像環(huán)境,已經(jīng)做好了,到時候直接用docker push zhugeaming/python3-appium,其實想學(xué)習(xí)docker其他內(nèi)容可以看我之前寫的其他文章。
總結(jié)
以上是生活随笔為你收集整理的用python批量创建docker_「docker实战篇」python的docker-docker镜像的创建使用dockerfile(3...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: threejs加载模型挤压变形_车用水阀
- 下一篇: websocket python爬虫_p