溫馨提示×

溫馨提示×

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

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

「docker實戰篇」python的docker-docker鏡像的創建使用dockerfile(3

發布時間:2020-07-15 14:32:03 來源:網絡 閱讀:1006 作者:IT人故事 欄目:云計算

>>原創文章,歡迎轉載。轉載請注明:轉載自IT人故事會,謝謝!
>>原文鏈接地址:「docker實戰篇」python的docker-docker鏡像的創建使用dockerfile(33)


從上篇docker commit學習可以了解到,鏡像的定制其實每一層添加的配置和文件,如果把每一層的修改配置,修改文件,都寫入腳本,用這個腳本構建定制鏡像,無法重復的問題,鏡像構建透明性的問題,體積的問題都會解決。這個腳本就是Dockerfile。

「docker實戰篇」python的docker-docker鏡像的創建使用dockerfile(3


Dockerfile

  • 什么是dockerfile

    一個文本文件,其內包含了一條條的指令,每一條指令構建一層,因此每一條指令的內容,就是描述該層應當如何構建。

  • 了解FROM

    FROM指定基礎鏡像,基礎鏡像是必須指定的。而FROM就是指定基礎鏡像,因此一個Dockerfile中From是必備的指令,并且必須是第一條指令。在dockerhub上有很多高質量的docker鏡像,有可以直接拿來使用的基礎鏡像:nginx,tomcat,java,python,php,mongodb。搜尋最符合使用的的一個基礎鏡像。

  • 了解RUN

    RUN執行命令是用來執行命令行命令的。由于命令行的強大能力,RUN指令在定制鏡像時最常用的指令之一。

shell?格式:?RUN<命令>,就像直接在命令行中輸入的命令一樣
exec?格式:?RUN["可執行文件","參數1","參數2"],這更像是函數調用中的格式

  • 不建議的寫成下面這種Dockerfile
    > 之前說過Dockerfile每個指令都會創建一個層,下面這種寫法就是創建了7層的鏡像,這樣做就完全是沒有意義的,很多運行不需要的東西都被裝到這個鏡像里面去了,編譯環境更新軟件包,產生非常臃腫層非常多的鏡像,不僅僅增加了構建部署的時間,也很容易出錯,也是初學docker容易犯的錯誤,之前我也犯過。鏡像的層數是有限制的,最大層不能超過127層。鏡像是多層存儲的,在加入一層就是,之前的層不會被修改。

「docker實戰篇」python的docker-docker鏡像的創建使用dockerfile(3

正確的方式。一定要做到每一層是需要的東西,任何無關的東西都要被清理掉。這也是制作鏡像容易犯的錯誤,之前安裝的文件沒有清理。

「docker實戰篇」python的docker-docker鏡像的創建使用dockerfile(3

實戰編寫Dockerfile

  • 創建目錄,存放Dockerfile

mkdir?newNginx
cd?newNginx

「docker實戰篇」python的docker-docker鏡像的創建使用dockerfile(3

  • 編寫 Dockerfile

From?nginx
RUN?echo?'<h2>welcome?to?idig8.com?study?docker</h2>'?>?/usr/share/nginx/html/index.html

「docker實戰篇」python的docker-docker鏡像的創建使用dockerfile(3

  • 構建Dockerfile

docker?build?-t?nginx:v2?.
docker?images

「docker實戰篇」python的docker-docker鏡像的創建使用dockerfile(3

  • 推送docker hub推送
    >登錄docker hub

#先配置dns?8.8.8.8
?vi?/etc/resolv.conf

docker?login

「docker實戰篇」python的docker-docker鏡像的創建使用dockerfile(3

「docker實戰篇」python的docker-docker鏡像的創建使用dockerfile(3

設置倉庫地址,登錄hub.docker.com

「docker實戰篇」python的docker-docker鏡像的創建使用dockerfile(3

更改名稱

docker?tag?nginx:v2?zhugeaming/nginx:v2

「docker實戰篇」python的docker-docker鏡像的創建使用dockerfile(3

完成推送

docker?push?zhugeaming/nginx:v2

「docker實戰篇」python的docker-docker鏡像的創建使用dockerfile(3

查看結果

「docker實戰篇」python的docker-docker鏡像的創建使用dockerfile(3

「docker實戰篇」python的docker-docker鏡像的創建使用dockerfile(3

PS:其實在開發的時候,多任務的時候,只需要一個python3和mitmproxy的鏡像環境,已經做好了,到時候直接用docker push zhugeaming/python3-appium,其實想學習docker其他內容可以看我之前寫的其他文章。


「docker實戰篇」python的docker-docker鏡像的創建使用dockerfile(3


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女