docker基本操作三(Dockerfile的使用)

        使用docker commit創建鏡像時我們需要先基於鏡像運行一個容器,然後進入容器修改後保存爲一個新鏡像。

        使用Dockerfile定製鏡像的時候我們就不需要先啓動一個容器了,但是我們仍然需要基於一個容器,當然我們可以基於一個空的容器來實現全diy。使用Dockerfile定製鏡像我們就更容易理解容器是一層一層的了。

最簡單的我們實現之前我們用commit保存的鏡像

1.編寫Dockerfile

首現創建一個新目錄

# 文件名未必一定是Dockerfile
           # 如果是其他名字的話後面我們在執行定製鏡像命令時需要指定文件名(docker默認是Docker)

mkdir mynginx && cd mynginx && touch Dockerfile

進入Dockerfile輸入下面兩行保存:

# FROM是必備且必須是第一個指令,就是前面提到的需要基於一個鏡像

FROM nginx

# RUN是執行指令  重寫index.html文件

RUN echo "<h1>hello world</h1>" > /usr/share/nginx/html/index.html

2.定製鏡像:docker build

docker build -t nginx:v2.0 .(這裏有一個"點")

這樣我們的鏡像就定製好了,可以docker image ls查看

ps:

Dockerfile我們可以理解爲docker腳本,就像一個命令羅列的shell腳本,每一句執行命令(如:RUN)就是一層,有多少個執行命令就是多少層。

這樣我們就不難理解爲什麼我們commit保存的時候爲什麼是加一層而不是修改了,因爲在生成鏡像的時候是命令羅列的形式一個命令一個命令執行的完成的,而一個命令就是一層,每一層創建好之後這一層就創建結束了,想要修改就必須加一條命令(即添加一層)來修改,所以每一層的創建都要小新認真。

一個鏡像不得超過127層(之前是42層)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章