咱們能夠從Docker Hub上下載官方倉庫中的鏡像,我本身就下載了ubuntu鏡像,只有
188M
左右,很小巧了。可是看了下,裏面的軟件源仍是官方的,並且沒有安裝vim
,因此就打算本身寫一個Dockerfile
,用它來構建適合本身的ubuntu基礎鏡像。git
languagedeb http://archive.ubuntu.com/ubuntu/ trusty main restricted deb-src http://archive.ubuntu.com/ubuntu/ trusty main restricted ...................
build context
,一個自定義的文件夾,裏面放置Dockerfile和一些須要的文件。好比個人:github
language. ├── baseimage │ ├── Dockerfile │ ├── README.md │ ├── sources.list │ └── vimrc
製做image有兩種方法:docker
commit
命令建立命令:參數
爲基本構建語句,命令所有大寫,後面的參數視命令而定FROM,必須是第一個命令項,表示個人鏡像是以哪一個鏡像爲基礎構建的ubuntu
languageFROM ubuntu
MAINTAINER,後面接構建這的姓名和郵箱,方便聯繫vim
languageMAINTAINER adolphlwq <kenan3015@gmail.com>
LABEL,用鍵值對的方式來指定image的元數據緩存
languageLABEL Description="it is used as a basic image for DuoHuoStudio and my study.I will update and install vim." Vendor="Basic image"
ADD,在構建時向Docker daemon傳遞文件bash
languageADD sources.list /etc/apt/
RUN,接操做和命令sudo apt-get install -y vim
等ui
languageADD sources.list /etc/apt/
CMD,構建成功的鏡像第一次啓動時默認啓動的命令spa
docker run ..
後面的命令覆蓋languageCMD ["/bin/bash"]
ENV,設置環境變量rest
languageENV REFRESHED_AT 2015-05-18
languagecd baseimage(構建上下文文件夾) docker build -t="duohuosrudio/ubuntu:14.04_64_base_image" .
docker build
中-t
表示容器的名字duohuosrudio/ubuntu
中duohuostudio
表示倉庫名(不容許大寫),ubuntu
表示鏡像名。ubuntu:14.04_64_base_image
後的14.04_64_base_image
是標籤,若是沒有指定,默認的是latest
構建過程:
apt-get upgrade
和apt-get install vim
都要加上** -y**選項,否則會報錯ADD <src>... <dest>
表示要添加的文件,表示文件添加到哪裏。構建上下文
爲根目錄來找,不能超出構建上下文的範圍。若是除錯中止構建了也不要擔憂,Docker會把構建過程當中的文件都緩存起來,再次構建時會從緩存的地方開始,節省時間。
除錯中止後docker images
會出現一個只有IMAGE ID
的鏡像,這個就是構建失敗後留下的緩存,咱們能夠經過image id來運行這個鏡像,而後執行除錯的命令來檢查爲何出錯!(下圖的最後1行)
languageadolph@geek:~/programs/DockerWorkspace/dockerfile/baseimage$ docker images REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE test/ubuntu 14.04_64_base_image e9390454465c 14 hours ago 269.1 MB test2/ubuntu 14.04_64_base_image e9390454465c 14 hours ago 269.1 MB duohuostudio/ubuntu 14.04_64_base_image e9390454465c 14 hours ago 269.1 MB <none> <none> f6efc4dac25a 16 hours ago 269.1 MB
languagedocker build -t="duohuostudio/ubuntu:14.04_64_base_image" .
這條命令的最後一個參數是用來指定Dockerfile的路徑,千萬不要忘記。
dockerfile已經上傳到 github 地址
鏡像也已經上傳到Docker Hub
上了,能夠經過下列命令下載鏡像
docker pull adolphlwq/ubuntu