一梯啤、DockerFile語法
官網(wǎng)說明:https://docs.docker.com/engine/reference/builder/#run
1颈墅、 From? image??第一行必須指令基于的基礎(chǔ)鏡像
?2、MAINTAINER user mail??維護者信息?
3茫舶、 RUN ?[“executable” ,”Param1”, “param2”]??容器創(chuàng)建時執(zhí)行的指令
5械巡、EXPOSE port? ?告訴Docker服務(wù)端容器暴露的端口號,供互聯(lián)系統(tǒng)使用饶氏。在啟動Docker時讥耗,可以通過-P,主機會自動分配一個端口號轉(zhuǎn)發(fā)到指定的端口。使用-P疹启,則可以具體指定哪個本地端口映射過來
6葛账、ENV? key value???指定一個環(huán)境變量,會被后續(xù) RUN 指令使用皮仁,并在容器運行時保持籍琳。EVN version 1
7、ADD src des
該命令將復(fù)制指定的src 到容器中的des 贷祈。 其中 src可以是Dockerfile所在目錄的一個相對路徑趋急;也可以是一個URL;
8势誊、COPY??src des?復(fù)制本地主機的 src?(為Dockerfile所在目錄的相對路徑)到容器中的des? (滿足同等功能的情況下呜达,推薦使用COPY指令)。
4粟耻、CMD [“executable” ,”Param1”, “param2”]?容器啟動時執(zhí)行指令 查近,每個容器只能執(zhí)行一條CMD命令,多個CMD命令時挤忙,只最后一條被執(zhí)行霜威。可被 docker run 提供的參數(shù)覆蓋册烈。
9戈泼、ENTRYPOINT
兩種格式:
ENTRYPOINT [“executable”, “param1”, “param2”]?
ENTRYPOINT command param1 param2 (shell中執(zhí)行)。?
配置容器啟動后執(zhí)行的命令赏僧,并且不可被 docker run 提供的參數(shù)覆蓋大猛。
每個Dockerfile中只能有一個 ENTRYPOINT ,當(dāng)指定多個時淀零,只有最后一個起效挽绩。
VOLUME [“/data”] 。
創(chuàng)建一個可以從本地主機或其他容器掛載的掛載點驾中,一般用來存放數(shù)據(jù)庫和需要保持的數(shù)據(jù)等
USER daemon 唉堪。
指定運行容器時的用戶名或UID模聋,后續(xù)的 RUN 也會使用指定用戶。
WORKDIR
格式為 WORKDIR /path/to/workdir 巨坊。
為后續(xù)的 RUN 撬槽、 CMD 此改、 ENTRYPOINT 指令配置工作目錄趾撵。
可以使用多個 WORKDIR 指令,后續(xù)命令如果參數(shù)是相對路徑共啃,則會基于之前命令指定的路徑占调。例如
WORKDIR /a?
WORKDIR b?
WORKDIR c?
RUN pwd?
則最終路徑為 /a/b/c 。
ONBUILD [INSTRUCTION] 移剪。
配置當(dāng)所創(chuàng)建的鏡像作為其它新創(chuàng)建鏡像的基礎(chǔ)鏡像時究珊,所執(zhí)行的操作指令。
例如纵苛,Dockerfile使用如下的內(nèi)容創(chuàng)建了鏡像 image-A 剿涮。
ONBUILD ADD . /app/src?
ONBUILD RUN /usr/local/bin/python-build –dir /app/src??
如果基于A創(chuàng)建新的鏡像時,新的Dockerfile中使用 FROM image-A 指定基礎(chǔ)鏡像時攻人,會自動執(zhí)行 ONBUILD 指令內(nèi)容取试,等價于在后面添加了兩條指令。
docker build
docker build -t image: tag -f? dockerfile?
上傳鏡像
docker push
用戶可以通過 docker push 命令怀吻,把自己創(chuàng)建的鏡像上傳到倉庫中來共享瞬浓。例如,用戶在 Docker Hub 上完成注冊后蓬坡,可以推送自己的鏡像到倉庫中猿棉。
運行實例:
$ docker push hainiu/httpd:1.0
創(chuàng)建容器
docker create
docker create 命令為指定的鏡像(image)添加了一個可讀寫層,構(gòu)成了一個新的容器屑咳。注意萨赁,這個容器并沒有運行。
docker create 命令提供了許多參數(shù)選項可以指定名字兆龙,硬件資源位迂,網(wǎng)絡(luò)配置等等。
啟動容器
docker start
Docker start命令為容器文件系統(tǒng)創(chuàng)建了一個進程隔離空間详瑞。注意掂林,每一個容器只能夠有一個進程隔離空間。
運行實例:
#通過名字啟動$ docker start-i centos6_container#通過容器ID啟動$ docker start-i b3cd0b47fe3d
2坝橡、commit容器
docker commit
將容器的可讀寫層轉(zhuǎn)換為一個只讀層泻帮,這樣就把一個容器轉(zhuǎn)換成了不可變的鏡像。
鏡像保存
docker save
創(chuàng)建一個鏡像的壓縮文件计寇,這個文件能夠在另外一個主機的Docker上使用锣杂。和export命令不同脂倦,這個命令
為每一個層都保存了它們的元數(shù)據(jù)。這個命令只能對鏡像生效元莫。
使用示例:
#保存centos鏡像到centos_images.tar 文件$ docker save-o centos_images.tar centos:centos6@底瑁或者直接重定向$ docker save-o centos_images.tar centos:centos6> centos_images.tar
容器導(dǎo)出
docker export
創(chuàng)建一個tar文件,并且移除了元數(shù)據(jù)和不必要的層踱蠢,將多個層整合成了一個層火欧,只保存了當(dāng)前統(tǒng)一視角看到的內(nèi)容。expoxt后的容器再import到Docker中茎截,只有一個容器當(dāng)前狀態(tài)的鏡像苇侵;而save后的鏡像則不同,它能夠看到這個鏡像的歷史鏡像(docker images --tree 查看鏡像所有的層? 可回滾
https://www.server110.com/docker/201411/11213.html