摘要:但是看了下,里面的軟件源還是官方的,而且沒(méi)有安裝,所以就打算自己寫(xiě)一個(gè),用它來(lái)構(gòu)建適合自己的基礎(chǔ)鏡像。我事先配置好的,都是些基礎(chǔ)的配置。添加的文件必須以構(gòu)建上下文為根目錄來(lái)找,不能超出構(gòu)建上下文的范圍。
我們可以從Docker Hub上下載官方倉(cāng)庫(kù)中的鏡像,我自己就下載了ubuntu鏡像,只有188M左右,很小巧了。但是看了下,里面的軟件源還是官方的,而且沒(méi)有安裝vim,所以就打算自己寫(xiě)一個(gè)Dockerfile,用它來(lái)構(gòu)建適合自己的ubuntu基礎(chǔ)鏡像。
languagedeb http://archive.ubuntu.com/ubuntu/ trusty main restricted deb-src http://archive.ubuntu.com/ubuntu/ trusty main restricted ...................構(gòu)建上下文
build context,一個(gè)自定義的文件夾,里面放置Dockerfile和一些需要的文件。比如我的:
Dockerfile...這個(gè)是必須的
sources.list...自己在官方社區(qū)找的ubuntu14.04的源
vimrc...安裝好vim后用到的配置文件。我事先配置好的,都是些基礎(chǔ)的配置。
language. ├── baseimage │?? ├── Dockerfile │?? ├── README.md │?? ├── sources.list │?? └── vimrcDokerfile
制作image有兩種方法:
從現(xiàn)有容器通過(guò)commit命令創(chuàng)建
dockerfile中不方便的操作可以在容器中操作然后提交
沒(méi)有批量啟動(dòng)容器的需要
自己學(xué)、習(xí)練習(xí),不需要移植
利用Dockerfile構(gòu)建
方便,靈活,可移植
適合部署大量的鏡像和容器
Dockerfile基礎(chǔ)"#"表示注釋?zhuān)话鉊ockerfile第一行注釋容器的基本信息和版本。
Dockerfile以命令:參數(shù)為基本構(gòu)建語(yǔ)句,命令全部大寫(xiě),后面的參數(shù)視命令而定
FROM,必須是第一個(gè)命令項(xiàng),表示我的鏡像是以哪個(gè)鏡像為基礎(chǔ)構(gòu)建的
languageFROM ubuntu
MAINTAINER,后面接構(gòu)建這的姓名和郵箱,方便聯(lián)系
languageMAINTAINER adolphlwq
LABEL,用鍵值對(duì)的方式來(lái)指定image的元數(shù)據(jù)
languageLABEL Description="it is used as a basic image for DuoHuoStudio and my study.I will update and install vim." Vendor="Basic image"
ADD,在構(gòu)建時(shí)向Docker daemon傳遞文件
languageADD sources.list /etc/apt/
RUN,接操作和命令sudo apt-get install -y vim等
languageADD sources.list /etc/apt/
CMD,構(gòu)建成功的鏡像第一次啟動(dòng)時(shí)默認(rèn)啟動(dòng)的命令
CMD只有1條,一般默認(rèn)在Dockerfile的最后
如果有多個(gè)CMD,只有最后一個(gè)起作用
CMD會(huì)被docker run ..后面的命令覆蓋
languageCMD ["/bin/bash"]
ENV,設(shè)置環(huán)境變量
languageENV REFRESHED_AT 2015-05-18構(gòu)建命令
languagecd baseimage(構(gòu)建上下文文件夾) docker build -t="duohuosrudio/ubuntu:14.04_64_base_image" .
docker build中-t表示容器的名字
duohuosrudio/ubuntu中duohuostudio表示倉(cāng)庫(kù)名(不允許大寫(xiě)),ubuntu表示鏡像名。
ubuntu:14.04_64_base_image后的14.04_64_base_image是標(biāo)簽,如果沒(méi)有指定,默認(rèn)的是latest
構(gòu)建過(guò)程:
實(shí)踐中遇到的錯(cuò)誤apt-get upgrade和apt-get install vim都要加上** -y**選項(xiàng),不然會(huì)報(bào)錯(cuò)
ADD后面必須接兩個(gè)參數(shù),ADD
ADD添加的文件必須以構(gòu)建上下文為根目錄來(lái)找,不能超出構(gòu)建上下文的范圍。
如果除錯(cuò)停止構(gòu)建了也不要擔(dān)心,Docker會(huì)把構(gòu)建過(guò)程中的文件都緩存起來(lái),再次構(gòu)建時(shí)會(huì)從緩存的地方開(kāi)始,節(jié)省時(shí)間。
除錯(cuò)停止后docker images會(huì)出現(xiàn)一個(gè)只有IMAGE ID的鏡像,這個(gè)就是構(gòu)建失敗后留下的緩存,我們可以通過(guò)image id來(lái)運(yùn)行這個(gè)鏡像,然后執(zhí)行除錯(cuò)的命令來(lái)檢查為什么出錯(cuò)!(下圖的最后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總結(jié)f6efc4dac25a 16 hours ago 269.1 MB
languagedocker build -t="duohuostudio/ubuntu:14.04_64_base_image" .
這條命令的最后一個(gè)參數(shù)是用來(lái)指定Dockerfile的路徑,千萬(wàn)不要忘記。
dockerfile已經(jīng)上傳到 github 地址
鏡像也已經(jīng)上傳到Docker Hub上了,可以通過(guò)下列命令下載鏡像
docker pull adolphlwq/ubuntu
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/26412.html
摘要:以下為幾個(gè)常用的指令依賴(lài)鏡像所有都必須以命令開(kāi)始,表示其依賴(lài)的鏡像。的端口不使用公有端口。與命令使用數(shù)組語(yǔ)法。推薦阿里云,畢竟有錢(qián),穩(wěn)定。參數(shù)表示后臺(tái)守護(hù)進(jìn)程運(yùn)行容器。執(zhí)行,運(yùn)行應(yīng)用。 docker 即容器 一些概念 Docker Registry Docker 遠(yuǎn)程鏡像倉(cāng)庫(kù) DockerHub DaoCloud / Aliyun Docker Images Docker Imag...
摘要:我的主力機(jī)是下面有太多提升效率的軟件但是開(kāi)發(fā)的時(shí)候不得不使用就單單開(kāi)發(fā)而言我還是喜歡使用所以就造成了我得在下面使用虛擬機(jī)這是最開(kāi)始的辦法后面得知有這個(gè)東西之后用了一陣子感覺(jué)還不錯(cuò)但是我使用的時(shí)候動(dòng)不動(dòng)就會(huì)出現(xiàn)一些問(wèn)題所以一怒之下決定學(xué)學(xué)然后 我的主力機(jī)是windows,windows下面有太多提升效率的軟件.但是開(kāi)發(fā)的時(shí)候不得不使用linux.就單單開(kāi)發(fā)而言.我還是喜歡使用linux....
摘要:此命令下載測(cè)試鏡像并在容器中運(yùn)行它。國(guó)內(nèi)很多云服務(wù)商都提供了加速器服務(wù),例如阿里云加速器注冊(cè)用戶(hù)并且申請(qǐng)加速器,會(huì)獲得如這樣的地址。獲取鏡像阿里云鏡像庫(kù)上有大量的高質(zhì)量的鏡像可以用,這里我們就說(shuō)一下怎么獲取這些鏡像并運(yùn)行。 showImg(https://segmentfault.com/img/remote/1460000012924583); 這篇文章是我學(xué)習(xí) Docker 的記錄...
摘要:后聯(lián)合廣東,致力于北伐,他所統(tǒng)領(lǐng)的七軍被譽(yù)為鋼軍,奠定了南京國(guó)民政府的基礎(chǔ),龍?zhí)兑灰郏於私y(tǒng)一全國(guó)的基礎(chǔ)。這本書(shū)爆出很多歷史事實(shí),比如北伐,國(guó)民黨內(nèi)部紛爭(zhēng),蔣介石的為人。 最近在看《李宗仁回憶錄》,斷斷續(xù)續(xù)看了一個(gè)星期,因白天沒(méi)時(shí)間,只能抽出晚上的時(shí)間,荒廢了好多學(xué)習(xí)的時(shí)間,自覺(jué)慚愧。本來(lái)就對(duì)歷史非常感興趣,而李宗仁的這個(gè)回憶錄,寫(xiě)得真是太好啦,每天晚上回來(lái),本想著打開(kāi)書(shū)就看一會(huì),然...
摘要:后聯(lián)合廣東,致力于北伐,他所統(tǒng)領(lǐng)的七軍被譽(yù)為鋼軍,奠定了南京國(guó)民政府的基礎(chǔ),龍?zhí)兑灰郏於私y(tǒng)一全國(guó)的基礎(chǔ)。這本書(shū)爆出很多歷史事實(shí),比如北伐,國(guó)民黨內(nèi)部紛爭(zhēng),蔣介石的為人。 最近在看《李宗仁回憶錄》,斷斷續(xù)續(xù)看了一個(gè)星期,因白天沒(méi)時(shí)間,只能抽出晚上的時(shí)間,荒廢了好多學(xué)習(xí)的時(shí)間,自覺(jué)慚愧。本來(lái)就對(duì)歷史非常感興趣,而李宗仁的這個(gè)回憶錄,寫(xiě)得真是太好啦,每天晚上回來(lái),本想著打開(kāi)書(shū)就看一會(huì),然...
閱讀 3133·2021-11-19 09:40
閱讀 2430·2021-10-14 09:42
閱讀 1698·2021-09-22 15:34
閱讀 1441·2019-08-30 15:55
閱讀 775·2019-08-29 12:59
閱讀 412·2019-08-28 18:28
閱讀 1817·2019-08-26 13:42
閱讀 1518·2019-08-26 13:29